異なる場所に保存されている複数のファイルの違いを比較または検索するbashスクリプトが必要です。
ファイルの下/tmp/test/
- A.txt
- B.txt
- C.txt
/home/oldtest
/以下のファイルと比較
- A.txt
- B.txt
- C.txt
健康状態:
ファイル
/tmp/test/A.txt
はとのみ比較されます/home/oldtest/A.txt
(他のファイルと同様 -B.txt
と比較B.txt
)。変更が見つかった場合:ステータスは「A.txtファイルに変更が必要」でなければなりません。
答え1
diff
GNU diffutilsには再帰比較オプションがあります。
diff -qrs /dir/A /dir/B
ディレクトリの比較:-q
静かに(つまり、違いは印刷されず、ファイルが異なることを報告するだけで)、再帰的に-r
(すべてのサブディレクトリを含むツリー全体)-s
同じファイルを報告します。
答え2
cd /tmp/test
for i in *.txt; do diff -q $i /home/oldtest/$i; done
異なるファイルごとに「ファイルA.txtと../home/oldtest/A.txtが異なります」と出力されます。
答え3
cd /tmp/test/;
for x in *; do \
cmp -s "$x" /home/oldtest/"$x" || echo "Modification required in file $x";
done;|more
答え4
誰かがあなたのためにスクリプトを書いてくれるかどうかはわかりませんが、あなたはそれを使うことができますdiff
。diff -q
。
たとえば、
$ diff -q .vimrc .bashrc
Files .vimrc and .bashrc differ
自動化するにはスクリプトを使用できます。
Bashスクリプトの作成方法に関する良い参考資料については、こちらをご覧ください。http://bash.cyberciti.biz/guide/Main_Page