是否有可能在Unix中使用ls列出子目录的总大小及其所有内容,而不是通常的4K(我假设)只是目录文件本身?
total 12K
drwxrwxr-x 6 *** *** 4.0K 2009-06-19 10:10 branches
drwxrwxr-x 13 *** *** 4.0K 2009-06-19 10:52 tags
drwxrwxr-x 16 *** *** 4.0K 2009-06-19 10:02 trunk
在翻遍了手册之后,我一无所获。
是否有可能在Unix中使用ls列出子目录的总大小及其所有内容,而不是通常的4K(我假设)只是目录文件本身?
total 12K
drwxrwxr-x 6 *** *** 4.0K 2009-06-19 10:10 branches
drwxrwxr-x 13 *** *** 4.0K 2009-06-19 10:52 tags
drwxrwxr-x 16 *** *** 4.0K 2009-06-19 10:02 trunk
在翻遍了手册之后,我一无所获。
当前回答
du -h --max-depth=1 . | sort -n -r
其他回答
这是我喜欢的
更新:我不喜欢前一个,因为它不显示当前目录下的文件,它只列出目录。
ubuntu上/var的输出示例:
sudo du -hDaxd1 /var | sort -h | tail -n10 .使用实例
4.0K /var/lock
4.0K /var/run
4.0K /var/www
12K /var/spool
3.7M /var/backups
33M /var/log
45M /var/webmin
231M /var/cache
1.4G /var/lib
1.7G /var
以人类可读的格式列出当前目录中最大的目录:
Du -sh * | sort -hr
一个更好的限制行数的方法是
Du -sh * | sort -hr | head -n10
在哪里可以增加-n标志的后缀来限制列出的行数
示例:
[~]$ du -sh * | sort -hr
48M app
11M lib
6.7M Vendor
1.1M composer.phar
488K phpcs.phar
488K phpcbf.phar
72K doc
16K nbproject
8.0K composer.lock
4.0K README.md
这样读起来更方便:)
有一段时间,我使用Nautilus(在RHEL 6.0的Gnome桌面上)来删除我的主文件夹上的文件,而不是使用bash中的rm命令。因此,总大小显示为
du -sh
每个子目录的磁盘使用量之和不匹配,当我使用
du -sh *
我花了一段时间才意识到Nautilus将删除的文件发送到它的垃圾文件夹,而这个文件夹并没有在du -sh *命令中列出。所以,我只是想分享这个,以防有人面临同样的问题。
从ls中只检索以字节为单位的大小。
ls -ltr | head -n1 | cut -d' ' -f2
Du -sch *在同一目录下。