あるディレクトリには存在するが、他のディレクトリには存在しないファイルを見つけようとしているので、このコマンドを使ってみました。
diff -q dir1 dir2
上記のコマンドの問題点は、dir1
にあってdir2
にないファイルと、dir2
にあってdir1
にないファイルの両方を見つけてしまうことです。
私は dir1
にあって dir2
にないファイルだけを見つけようとしています。
以下は、私のデータがどのようなものかの小さなサンプルです。
dir1 dir2 dir3
1.txt 1.txt 1.txt
2.txt 3.txt 3.txt
5.txt 4.txt 5.txt
6.txt 7.txt 8.txt
もうひとつの疑問は、dir1
にあってdir2
やdir3
にはないファイルを、ひとつのコマンドで見つけるにはどうしたらよいかということです。
diff -r dir1 dir2 | grep dir1 | awk '{print $4}' > difference1.txt
説明:。
diff -r dir1 dir2` は、dir1 にのみ存在するファイルと dir2 にのみ存在するファイルを表示し、両ディレクトリに存在するファイルに変更があれば、その変更点も表示します。
diff -r dir1 dir2 | grep dir1` は、dir1にのみ存在するファイルを表示します。
ファイル名だけを表示するにはawk
を使用します。