ディレクトリ内の差分をとる
2010年4月12日
<c:\xampp\htdocs\test\aaa\> と <c:\xampp\htdocs\test\bbb\> のディレクトリを下層も含めて比較したいが、下層のディレクトリが多くてWinMergeみたいな比較ツールじゃ時間がかかる!!
――という場合は、Cygwinを使うと楽です。
- Cygwinを起動する。
cdコマンドで、差分をとりたいフォルダがある場所へ移動。
例:
$ cd /cygdrive/c/xampp/htdocs/test
diffコマンドで比較し、<diff.txt> というファイルに結果を出力。
例:
$ diff -qr aaa bbb > diff.txt
- 結果が表示されるまで待つ。diffコマンド実行後に $ が出力されて、再びコマンドが入力できるようになっていれば終了。
差分があれば、以下のように表示される。実際になにが違うのかは、そのファイルやディレクトリをWinMergeなどで比較する。
Files aaa/xxx/index.html and bbb/xxx/index.html differ Only in aaa/yyy/: 01
※それぞれ以下の意味。
- <aaa/> と <bbb> で <xxx/index.html> の内容が違う。
- <aaa/> の <yyy/> にだけ、<01xxx> というディレクトリがある。
おまけ
diffの後のオプションは、以下のとおりです。
- -q
- ファイルが同じかどうかだけ表示する
- -r
- サブディレクトリも比較する