最近重複したアイテムをたくさん削除する必要があります。 3~4個のファイルシステムをマージしてスペースを経済的に使いたいです。最初はfdupes
作業に最適なツールのように見えましたが、ますます限界にぶつかっています。
順序を考慮してくださいfdupes -rdN somedirectory/
。これにより、ディレクトリのサブディレクトリにあるすべてのファイルのハッシュが生成されます。
重複したアイテムが見つかった場合は、すべてのアイテムのコピーが1つだけ削除されます。
しかし、somedirectory/subdirectory1/somefile
維持したいのですが、実際に4つの重複項目があり、プログラムが重複項目の1つを最初に発見した場合はどうなりますか?次に、somedirectory/subdirectory1/somefile
私が望んでいないアイテムを削除します。
どのような重複項目を保持するかどうかを指定できたらと思います。これまで、冗長処理のための標準プログラム(duff、FSLint)のどれもこの動作を自動化することを許可していないようです。私が直接したくないので、このような質問をします。
次のような文章を書けたらいいな
killdupes -rdN --keep=filesin,somedirectories,separated,by,commas somedirectory/
ベストアンサー1
探している機能が在庫がない間fdupes
フォークしました。fdupes
(私のフォーク名はjdupes
)そして、場合によっては、この問題を解決するためのいくつかの機能を追加しました。たとえば、somedirectory/subdirectory1/somefile
重複するアイテムを自動的に削除するときに保持(および一緒に切り替え)d
し、N
下に別のファイルがない場合は、各直接サブディレクトリPath-に最初と切り替えsomedirectory
(コマンドによるファイルの並べ替え)を提供しますできます。jdupes
行パラメータの順序が優先されます):subdirectory1
-O
jdupes -rdNO somedirectory/subdirectory1 somedirectory/subdirectory2 somedirectory/subdirectory3
これにより、重複セットから1つのファイルを除くすべてのファイルが自動的に削除され、ファイルがセットに含まれている場合、そのファイルが最初のファイルになり、自動的にセットに保持されるsomedirectory/subdirectory1
ファイルになります。このアプローチには、維持somedirectory/subdirectory1
したいものとは異なるレプリカを維持する可能性などの明白な制限がありますが、あなたのような多くの場合、jdupes
引数順序オプションは解決策で十分です。
近日中にファイルの包含/除外、ジョブの保存、およびこれらの「フィルタスタック」の適用を全体的または個別に制御できるフィルタリングシステムを追加する予定です。パラメータ基準jdupes
。-N
この機能は非常に必要です。私は「ゼロ以外の重複項目を自動的に再帰的に削除しますが、常にそのままにする」のようなsomedirectory/subdirectory1/somefile
機能を想像します。
jdupes -rdN --filter=preserve:somedirectory/subdirectory1/somefile somedirectory/
アップデート(2022-03-01):-X
2020年に追加された拡張フィルタオプションを見てください。これは正確には必要ではありませんが、nostr
フィルタonlystr
を使用すると、無視または必要とするフルパスのサブストリングを指定できます。