2012-04-10 4 views
21

私はbashスクリプトを書いていますが、2つのディレクトリツリーでどのファイルが同じであるかを知りたいと思います。2つのディレクトリツリーを指定すると、どのファイルが同じであるかを調べることができますか?

これはdiffを使用することの反対です。

私は自分自身で答えを見つけました。これまでに試してみましたが、うまくいかないと思いました。

diff -srq dir1/ dir2/ | grep identical 
+4

「同じ」のアプリケーションについては?名?イノード?サイズ?コンテンツ?モッドタイム?オーナー?グループ?パーミッション? – MattH

+0

結果を回答として投稿する – KurzedMetal

答えて

27

私は自分自身で答えを見つけました。これまでに試してみましたが、うまくいかないと思いました。何 -srq手段

diff -srq dir1/ dir2/ | grep identical 

差分--help

-s --report-identical-files Report when two files are the same. 
-r --recursive Recursively compare any subdirectories found. 
-q --brief Output only whether files differ. 
9

あなたが重複したファイルを一覧表示するfdupesまたはrdfindのようなユーティリティを使用することができます。たとえば:

fdupes --recurse dir1 dir2 

また、あなたは結果を解析する方法に応じて、むしろ、テキストブロックに比べて、同じ行にすべての重複を一覧表示する--samelineフラグを使用する場合があります。

+0

この技術では、同じ名前のファイルを検出することもできます。同じことをするためにdiffを調整できるかどうかは不明です – Giuseppe

関連する問題