find的输出作为参数

时间:2014-02-07 20:17:25

标签: shell unix

我的问题,

在构建过程中,a.c被复制到几个目录中,其中很少一个被修补,很少有人没有。我有一个预先打补丁的文件,我想对目录中找到的所有文件进行区分。我该如何解决这个问题?

任何帮助将不胜感激。我的谷歌搜索没有取得任何成功..

zerO One

2 个答案:

答案 0 :(得分:2)

您可以尝试这样的事情

find . -name a.c | xargs -I $$ diff ~/good/a.c $$

选项-I用于替换文字

有关详细信息,请参阅手册页:http://man7.org/linux/man-pages/man1/xargs.1.html

答案 1 :(得分:1)

而不是xargs,只需使用-exec

find . -name a.c -exec diff ~/good/a.c {} \;

{}表示刚刚找到的文件。转义分号结束了exec选项。

如果你想要输出也只是像这样捕获它:

find . -name a.c -exec diff ~/good/a.c {} \; 2>&1 | tee diff.out

2>&1捕获stdout和stderr。 tee可让您同时观看并保存结果。如果要自动执行此操作,可以使用find 2>&1 > diff.out

希望这会有所帮助。如果没有,请更新以告诉我们您还需要什么。

相关问题