Linuxで同じファイルを確認し、場所に応じて削除

Linuxで同じファイルを確認し、場所に応じて削除

fdupesを使用して同じファイルを見つけて削除します。

でも、こういう言葉でもしたらよかったのに…。

  • ディレクトリAまたはそのサブディレクトリからすべての重複ファイルを検索する
  • サブディレクトリBとCに重複したファイルがある場合は、必ずBのファイルを削除してください。

つまり、Bにまだ存在していないすべてのファイルをCに保存します。ディレクトリ構造は同じではないので、ここでrsyncは役に立ちません。

私はfdupesがこの機能を提供するとは思いません。各ペアに対して削除/保持する項目を手動で選択する必要があります。

だから私は同じことをするために高速なPythonスクリプトを書こうとしています。しかし、2つのファイルが同じであることを確認する信頼できる方法である可能性がある一意の一意のIDを各ファイルに提供するPythonから呼び出すことができるクイックシステムコマンドはありますか?私はPythonにファイルをロードしてその内容をハッシュすることに関連していないと思います。

答え1

いいえ、ハッシュは複数のファイルが一致するかどうかを知る唯一の簡単な方法ですが、誰も競合しようとしない場合は、同じサイズのファイルのみを比較するか、md5などの高速ハッシュを選択すると作業を高速化できます。 git/zfs/etcを使用して完了しました。

そうでなければ

fdupes -r A B | grep B | xargs -I {} rm "{}"

関連情報