0

私は2つの非常に大きなファイルシステム(移行を行うため)を比較していますが、diff -qrは素晴らしかったですが、ユーザーが新しい場所を使用していたため、ファイルが変更されました。ファイルが存在する場合にのみ、diff、grep、またはその他のものを使用して比較する方法があります。つまり、ファイルが異なるという事実を無視します。最新のdiffには、次のものがたくさんあります。/ dir1/myFileのみ/dir2/myFileのみ。grepを使用して、dir1に存在するdir2にまったく存在しないファイルのみを表示する簡単な方法、またはdiffで同様のことを行う簡単な方法がありますか。

4

3 に答える 3

1

使用できます:

tree /path/to/dir1 > out1
tree /path/to/dir2 > out2
diff out1 out2 | grep ">"

しかし、私はこのような仕事により適していると比較することを超えて見つけます。

于 2012-10-02T08:35:52.057 に答える
1

コマンド comm を使用することもできます

comm -1 -2 <(ls /path_to_dir-1/) <(ls /path_to_dir-2/)

追加情報については、次のリンクを確認してください。

http://nixtricks.wordpress.com/2010/01/11/unix-compare-the-contents-of-two-directories-in-the-command-line/

于 2012-10-02T08:44:33.883 に答える
0

上記の 1 つのライナーは優れていますが、この bash スクリプトを使用すると、さらにカスタマイズできます。特定のファイルを変更-e! -eたり、スキップしたりできます。

for f in $(find old/ -type f) ; do if [ -e "new/${f}" ] ; then echo "${f} exists" ; fi ; done

于 2012-10-02T08:57:10.880 に答える