在 bash 中,如何在目录及其子目录中搜索特定类型的文件(比如“*.txt”)。然后按大小降序显示文件及其大小和完整路径。
我尝试了以下但它不起作用。
find . -type f -name "*.txt" -print0 | ls -sS
我怎样才能做到这一点?
您可以使用 GNU find 的 printf 选项来完成此操作:
find "$PWD" -type f -name '*.txt' -printf "%s %h/%f\n" | sort -rg
要以 KB 而非字节为单位显示大小:
find "$PWD" -type f -name '*.txt' -printf "%k %h/%f\n" | sort -rg
find . -type f -name "*.txt" -print0 | xargs -0 ls -sS
除非有大量匹配文件,否则应该可以工作(man xargs(1) 查看默认值是什么)
如果 100% 正确,Swiss 在下面的评论xargs -0
是您使用的方法find -print0
find . -type f -name "*.txt" | xargs -i{} stat {} --format "%012s %n" | sort -r
以字节为单位给出大小。