任意の2つのディレクトリに格納されているファイル名の差分を調べたい
例えばこんな感じのディレクトリとファイルがあったとして、、
hoge/ hoge/aaa.txt hoge/bbb.txt fuga/ fuga/aaa.txt fuga/ccc.txt
bbb.txtはhogeディレクトリだけにあって、ccc.txtはfugaディレクトリだけにあるわけですが、これを任意の2つのディレクトリについて簡単に調べれるようになりたいのですが、ズバリなコマンドが見付かりません。(もちろんサブディレクトリがあれば再帰的に処理する必要あり)
自分がやりたいのは、bitkeeperから落としてきたmysql-5.0.36とかmysql-5.0.38とかのディレクトリ比較です。
で、diffとかsedで泥くさく頑張るこんなスクリプトでやってみた。ベタベタ。もっとすまぁとな方法はないものか。
mir@mouse:~/BK$ cat findnewfiles.sh #!/bin/sh LANG=en_US.UTF-8 diff -rq $1 $2 \ | grep "Only in $2" \ | sed -e "s/Only in $2/./g" \ | sed -e "s/: /\//g"
実行
findnewfiles.sh mysql-5.0.36 mysql-5.0.38 > created.txt findnewfiles.sh mysql-5.0.38 mysql-5.0.36 > removed.txt