gri*_*ove 2 command-line find disk-usage
我试图找到一个命令来显示大于 1 GB 的文件并显示按大小排序的文件。我已经尝试过,find . -maxdepth 2 -type f -size +1G -print0 |xargs -0 du -h |sort -rh但出于某种原因,这会显示大小不超过 1 GB 的文件。例如,这是在输出中1.0K ./<repo>/.git/info
至少有两个可能的原因:
也许你find什么也没打印。在这种情况下,xargs运行du -h相当于du -h .. 调查--no-run-if-emptyGNU 的选项xargs。或者更好地习惯find … -exec …而不是find … | xargs …. 像这样:
find . -maxdepth 2 -type f -size +1G -exec du -h {} + | sort -rh
Run Code Online (Sandbox Code Playgroud)
find -size测试(几乎)du --apparent-size显示的内容,而du没有此选项可能会非常不同意,尤其是当文件稀疏时。该选项不可移植。
我认为在你的情况下,第一个原因是罪魁祸首。注意./<repo>/.git/info不能来自,find . -maxdepth 2 -type f因为它的深度是 3。这意味着du在某个目录上递归操作。
| 归档时间: |
|
| 查看次数: |
95 次 |
| 最近记录: |