“find ... -exec sort”和“find ... | sort”之间的区别

时间:2011-11-22 17:09:41

标签: shell

这两个命令有什么区别?

find . -name "*.cpp" -exec sort \;
find . -name "*.cpp" |  sort

3 个答案:

答案 0 :(得分:3)

对于按指定条件找到的每个文件,第一个命令运行sort(不带参数)。这是(正如Mat在他的回答中指出的那样)是没用的。为每个文件运行排序的方法是说find . -name "*.cpp" -exec sort {} \;。这就像为匹配的每个文件运行sort a.cpp; sort b/c.cpp; ...

第二个生成.cpp个文件的列表,然后通过sort管道列表,生成一个cpp文件的排序列表。

答案 1 :(得分:0)

第一个运行sort,找不到每个.cpp文件的任何参数。这很无用,排序将等待stdin上的输入。

第二个对所有.cpp文件名列表进行排序。

答案 2 :(得分:0)

第一个读取每个*.cppfind*.cpp个文件的标准输入,并对您可能提供的每一行进行排序。

第二个对find个文件{{1}}找到的列表进行排序。