Bash脚本用于查找具有绝对路径的特定类型的文件,并按大小对其进行排序

时间:2012-08-01 03:00:19

标签: bash find ls

在bash中,如何在目录及其子目录中搜索特定类型的文件(例如“* .txt”)。然后按大小的降序显示文件及其大小和完整路径。

我尝试了以下但不起作用。

find . -type f -name "*.txt" -print0 | ls -sS

我该怎么做?

3 个答案:

答案 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

给出大小(以字节为单位)。