スポンサーリンク

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

スポンサーリンク