at_shiita.ishigaki
2021年11月2日 9時16分
diffコマンドをオプション無しで実行しても、サブディレクトリの中のファイルは比較されません。
サブディレクトリを比較するには-rオプションを使用します。
※ディレクトリ構成・ファイルの中身は以下のようになります。ここでは例として、file1とfile2を比較します。
root/
├ file1
│ ├ hoge.txt
│ └ fuga
│ └ fuga.txt
└ file2
├ hoge.txt
└ fuga
└ fuga.txt
[armadillo ~]# cat file1/hoge.txt
hoge1
hoge2
hoge3
[armadillo ~]# cat file2/hoge.txt
hoge1
hoge2
hoge3
[armadillo ~]# cat file1/fuga/fuga.txt
fuga1
fuga2
fuga3
[armadillo ~]# cat file2/fuga/fuga.txt
fuga1
fuga2
[armadillo ~]# diff file1 file2
Common subdirectories: file1/fuga and file2/fuga
diff file1/hoge.txt file2/hoge.txt
4d3
<
[armadillo ~]# diff -r file1 file2
diff -r file1/fuga/fuga.txt file2/fuga/fuga.txt
3d2
< fuga3
diff -r file1/hoge.txt file2/hoge.txt
4d3
<
ファイルの中身が同じか違うかのみを調べるには-qオプションを使用します。
[armadillo ~]# diff -rq file1 file2
Files file1/fuga/fuga.txt and file2/fuga/fuga.txt differ
Files file1/hoge.txt and file2/hoge.txt differ
また、特定のファイルを比較しない場合は-xオプションを使用します。
※ここでは例として、hoge.txtの比較を除きます。
[armadillo ~]# diff -rx hoge.txt file1 file2
diff -rx hoge.txt file1/fuga/fuga.txt file2/fuga/fuga.txt
3d2
< fuga3