是否有可能在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 -x / | sort -hr >> /home/log_size.txt

然后你就可以在你的服务器上获得所有大小的文件夹。轻松帮助您找到最大的尺寸。

其他回答

有一段时间,我使用Nautilus(在RHEL 6.0的Gnome桌面上)来删除我的主文件夹上的文件,而不是使用bash中的rm命令。因此,总大小显示为

du -sh

每个子目录的磁盘使用量之和不匹配,当我使用

du -sh *

我花了一段时间才意识到Nautilus将删除的文件发送到它的垃圾文件夹,而这个文件夹并没有在du -sh *命令中列出。所以,我只是想分享这个,以防有人面临同样的问题。

看一下du命令

如果你想要更多地控制目录列表的大小,你可以使用阈值(-t)开关,如下所示:

$ du -ht 1000000000 | sort --reverse

磁盘使用率 人可读的格式 T -阈值大小

在这里,我们想要列出大小大于1GB的所有目录。

$ du -ht 1G | sort --reverse

解释:

wiki中描述的单位如下:

K, M, G, T, P, E, Z, Y(1024的幂)或 KB, MB, GB, TB, PB, EB, ZB, YB(1000的幂)。

你 -短信 * |品种编号

按大小输出

试着这样做:

du -sh *

简写版:

du --summarize --human-readable *

解释:

du:磁盘使用率

-s:显示每个指定文件的摘要。(相当于-d 0)

-h: "人类可读"输出。使用单位后缀:Byte, Kibibyte (KiB), Mebibyte (MiB), Gibibyte (GiB), Tebibyte (TiB)和Pebibyte (PiB)。(BASE2)