指定された名前のすべてのファイルを検索し# find / -name myfile
、それらを別の指定されたファイルと比較し/home/me/myCompareFile
、ファイルが同一かどうかを出力したいと思います。空白を無視するとよいでしょうが、必須ではありません。これはシェルから実行できますか? ありがとう
質問する
43 次
2 に答える
2
次のことができます。
find . -name "t.c" | xargs -I % diff -q ../t.h % && echo "matches"
を探し、myFile
各結果呼び出しdiff
を と比較しmyCompareFile
、異なるかどうかを教えてくれます (おかげで-q
)
たとえばt.c
、t.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 に答える