fdupes - 2つのディレクトリを比較した後のファイルの削除

fdupes - 2つのディレクトリを比較した後のファイルの削除

現在を使用して問題を解決しようとしています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

おすすめ記事