diffの-rオプションでディレクトリ間を再帰的に比較
下記のように、diffの-rオプションでディレクトリ間を再帰的に比較できます。
※MACターミナル(BSD系)での動作確認です。
$ diff -r dir01/ dir02/
下記のディレクトリだったとします。
$ tree
.
├── dir01
│ ├── 01
│ │ ├── file.ex
│ │ └── file.txt
│ └── file.txt
└── dir02
├── 01
│ ├── file.ex
│ └── file.txt
└── file.txt
4 directories, 6 files
下記が実行結果になります。
$ diff -r dir01/ dir02/ diff -r dir01/01/file.ex dir02/01/file.ex 1c1 < --- > exdiff diff -r dir01/01/file.txt dir02/01/file.txt 1c1,2 < --- > line-diff01 > line-diff02 diff -r dir01/file.txt dir02/file.txt 0a1 > diffstring
-xでディレクトリとファイルを除外
-xオプションをつけて、diffが不要なディレクトリやファイルを除外できるのも便利です。
ディレクトリやファイルが多いときには有効です。
参考:diffの-xオプションで特定のファイルを除外して差分をとる
拡張子がexのファイルを除外しています。
$ diff -r -x *\.ex dir01/ dir02/ diff -r -x '*.ex' dir01/01/file.txt dir02/01/file.txt 1c1,2 < --- > line-diff01 > line-diff02 diff -r -x '*.ex' dir01/file.txt dir02/file.txt 0a1 > diffstring
ディレクトリ名が01のディレクトリを除外しています。
$ diff -r -x 01 dir01/ dir02/ diff -r -x 01 dir01/file.txt dir02/file.txt 0a1 > diffstring
