按照自己的大小查找大多数胖目录

时间:2016-05-20 10:26:15

标签: linux bash du

我想列出大多数胖目录,它的大小按大小递减排序。 '目录自己的大小'表示目录的大小,不包括其所有子目录的大小。

例如,我们有目录结构:

    /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

1 个答案:

答案 0 :(得分:3)

您可以du使用-S选项进行此

来自man页面

  

-S, - 分离 - 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 MB块中格式化输出,可以使用选项du -Sm