1

我想按大小降序排列自己的大小来列出大多数胖目录。“目录自己的大小”是指目录的大小,不包括其所有子目录的大小。

例如,我们有目录结构:

    /tmp/D1
            |-- 5m.file
            |-- D2
            |   |-- 2m.file
            |   `-- D4
            |       `-- 4m.file
            `-- D3
                `-- 3m.file

通过执行命令并将 /tmp/D1 作为参数传递,我想得到类似的结果

    5m      /tmp/D1
    4m      /tmp/D1/D2/D4
    3m      /tmp/D1/D3
    2m      /tmp/D1/D2

du -Sh . | sort -rh | head -n 10

+x 仅限于当前文件系统

du -Shx . | sort -rh | head -n 10
4

1 回答 1

3

您可以为此使用du一个-S选项

man页面

-S, --separate-dirs 不包括子目录的大小

$ du -Sh /foo/bar/temp2/ | sort -rh

84K     /foo/bar/temp2/
40K     /foo/bar/temp2/tempo
4.0K    /foo/bar/temp2/opt/logs/merchantportal
4.0K    /foo/bar/temp2/opt/logs
4.0K    /foo/bar/temp2/opt
4.0K    /foo/bar/temp2/folder
4.0K    /foo/bar/temp2/bang

-s现在使用包含所有子目录的选项以正常方式检查。

$ du -sh /foo/bar/temp2/opt
12K     /foo/bar/temp2/opt

这是子文件夹大小/foo/bar/temp2/opt/logs/merchantportal/foo/bar/temp2/opt/logs基本文件夹本身的总和

根据页面-h以人类可读格式格式化大小man。如果您强烈希望将输出格式化为 1-Mbyte 块,您可以使用该选项du -Sm

于 2016-05-20T11:00:01.003 回答