在bash中,如何在目录及其子目录中搜索特定类型的文件(例如“* .txt”)。然后按大小的降序显示文件及其大小和完整路径。
我尝试了以下但不起作用。
find . -type f -name "*.txt" -print0 | ls -sS
我该怎么做?
答案 0 :(得分:4)
您可以使用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
答案 1 :(得分:2)
find . -type f -name "*.txt" -print0 | xargs -0 ls -sS
除非有匹配文件的加载和加载(man xargs(1)以查看默认值是什么),否则应该有效。
如果100%正确,瑞士'评论如下,xargs -0
是您使用find -print0
答案 2 :(得分:1)
find . -type f -name "*.txt" | xargs -i{} stat {} --format "%012s %n" | sort -r
给出大小(以字节为单位)。