現在を使用して問題を解決しようとしていますfdupes
。 2つのフォルダを互いに比較し、これらのディレクトリの1つにある重複ファイルをすべて削除したいと思います。
例:
ファイルは自動的に保存されます/srv/
。重複したファイルがたくさんあります。すべてそのまま維持する必要があります。また、というディレクトリがありますが、その中にある/watchfolder/
すべてのファイルを削除したいと思います。watchfolder
/srv/
私はそれを試して、fdupes -r srv/ watchfolder/
その逆も同じでした。しかし、私のファイルはずっと混乱していますsrv/
。
ベストアンサー1
Fdupesを再帰的に使用する場合のフィルタリング
複数の項目が重複している場合は、次のような結果が出ることがあります。
srv/foo
srv/a/b/foo
watchfolder/foo
watchfolder/c/foo
watchfolder/d/foo
この場合、最初に検出された重複エントリ(srvエントリ内の最小ネスト深さとの一致)のみを維持したい場合を除き、よりスマートなルールを適用するために、重複エントリのリストをフィルタまたはシェルスクリプトに供給する必要があります。これがあなたが望むものなら:
fdupes --recurse --delete srv/ watchfolder/
動作します。すべてをsrv /に保存したいなど、より複雑な場合は、次のフィルタの使用を検討してください。
fdupes --recurse srv/ watchfolder/ | sed '/^srv/d; /^$/! s/.*/"&"/' | xargs rm