是否有可能在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

在翻遍了手册之后,我一无所获。


当前回答

如果你想要更多地控制目录列表的大小,你可以使用阈值(-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)

我总是使用du -sk (-k标志,以千字节为单位显示文件大小)代替。

Sudo du -hsx 2>/dev/null * .使用实例

0       bin
4.0K    boot
0       dev
9.0M    etc
6.5M    home
824K    init
0       lib
0       lib32
0       lib64
0       libx32
16K     lost+found
4.0K    media
4.0K    mnt
4.0K    opt
0       proc
61M     root
36K     run
0       sbin
4.0K    srv
0       sys
4.0K    tmp
2.2G    usr
4.9G    var

看一下du命令

Du -sk * | sort -n将按大小对文件夹排序。当你想要清理空间时很有帮助。

或du -sh * | sort -h用于人类可读模式