2

指定された名前のすべてのファイルを検索し# find / -name myfile、それらを別の指定されたファイルと比較し/home/me/myCompareFile、ファイルが同一かどうかを出力したいと思います。空白を無視するとよいでしょうが、必須ではありません。これはシェルから実行できますか? ありがとう

4

2 に答える 2

2

次のことができます。

find . -name "t.c" | xargs -I % diff -q ../t.h % && echo "matches"

を探し、myFile各結果呼び出しdiffを と比較しmyCompareFile、異なるかどうかを教えてくれます (おかげで-q)

たとえばt.ct.h例として現在のディレクトリにある:

% find . -name "t.c" | xargs -I % diff -q ./t.h % && echo "matches"
Files ./t.h and ./foo/t.c differ
Files ./t.h and ./t.c differ
% find . -name "t.c" | xargs -I % diff -q ./t.c % && echo "matches"
matches

よりもさらに優れてい&& echo "%matches"ます:

% find . -name "t.c" | xargs -I % diff -qs ./t.c %
Files ./t.c and ./foo/t.c differ
Files ./t.c and ./t.c are identical

-sパラメータdiffは次のとおりです。

   -s  --report-identical-files
          Report when two files are the same.

-q:

   -q  --brief
          Output only whether files differ.

cfman diff

于 2013-06-22T22:29:33.937 に答える
1
for file in $(find / -name myfile)
do
   diff $file /home/me/myCompareFile
done
于 2013-06-22T22:29:26.563 に答える