Linux 显示目录中大于 1 GB 的文件并显示大小

Linux 显示目录中大于 1 GB 的文件并显示大小

我试图找到一个命令来显示大于 1 GB 的文件并按大小排序显示这些文件。我已尝试过find . -maxdepth 2 -type f -size +1G -print0 |xargs -0 du -h |sort -rh,但由于某种原因,显示的文件大小不大于 1 GB。例如,这是在输出中1.0K ./<repo>/.git/info

答案1

至少有两个可能的原因:

  1. 也许你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
    
  2. find -size测试(几乎)什么du --apparent-size显示,而du没有此选项可能会非常不同意,特别是当文件稀疏时。该选项不可移植。

我认为在你的情况下,第一个原因是罪魁祸首。 Note./<repo>/.git/info无法来自,find . -maxdepth 2 -type f因为其深度为 3。这意味着du在某个目录上递归操作。

相关内容