我想列出大多数胖目录,它的大小按大小递减排序。 '目录自己的大小'表示目录的大小,不包括其所有子目录的大小。
例如,我们有目录结构:
/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
答案 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