Linuxでの重複排除ツールを探すにはたくさんあります。たとえば、このwikiページを参照してください。
ほとんどすべてのスクリプトは、検出、重複ファイル名の印刷、または1つのコピーへのハードリンクによる重複ファイルの削除のいずれかを実行します。
btrfsの台頭により、別のオプションがありますcp reflink=always
。ファイル(のような)のCoW(コピーオンライト)コピーを作成することです。これを行うツールを見つけていませんが、これを行うツールを知っている人はいますか?
Linuxでの重複排除ツールを探すにはたくさんあります。たとえば、このwikiページを参照してください。
ほとんどすべてのスクリプトは、検出、重複ファイル名の印刷、または1つのコピーへのハードリンクによる重複ファイルの削除のいずれかを実行します。
btrfsの台頭により、別のオプションがありますcp reflink=always
。ファイル(のような)のCoW(コピーオンライト)コピーを作成することです。これを行うツールを見つけていませんが、これを行うツールを知っている人はいますか?
回答:
おやすみなさい。良い(そして、多くの人にとって最適な選択になるいくつかの有用な差別化された機能がある)一方で、すべてのターゲットファイル全体をチェックサムについてスキャンするようです。
それはひどく遅いです。
一方、rdfindやrmlintなどの他のプログラムは、異なる方法でスキャンします。
rdfindには、btrfs reflinkを使用するための「実験的」機能があります。(そして、ハードリンク、シンボリックリンクなどの「固体」オプション)
rmlintには、btrfs clone、reflink、通常のハードリンク、symlinks、delete、および独自のカスタムコマンド用の「固体」オプションがあります。
しかし、より重要なのは、rdfindとrmlintが大幅に高速化されていることです。のように、桁違い。チェックサムについてすべてのターゲットファイルをスキャンするのではなく、およそ次のように実行します。
私が知っているrmlintの他の利点:
私はrmlintとdeduperemoveを比較しました-これは、すべてのターゲットファイルを盲目的にスキャンしてチェックサムを探します。Duperemoveは私のボリュームが完了するまでに数日かかりました(4だと思います)。fmlintは重複を特定するのに数時間かかり、Btrfsクローンで重複を排除するのに1日もかかりませんでした。
(とはいえ、高品質で堅牢なソフトウェアを作成してサポートし、無料で提供するために努力している人は誰でも、主要な賞賛に値します!)
ところで、通常のハードリンクを「一般的な」重複排除ソリューションとして使用することによる重複排除は、いかなる犠牲を払っても避けなければなりません。
特定の対象を絞ったユースケース(たとえば、個々のファイルや、最小サイズを超える特定のファイルタイプをスキャンできるツール、または無料の商用バックアップ/スナップショットソリューションの一部)では、ハードリンクが非常に便利ですが、悲惨な場合があります。大規模な汎用ファイルシステムでの「重複排除」用。その理由は、ほとんどのユーザーがファイルシステムに何千ものファイルを持っている可能性があるためです。これらはバイナリは同じですが、機能的に完全に異なります。
たとえば、多くのプログラムは、最初は同じであるテンプレートや隠し設定ファイルを(場合によっては、表示されるすべてのフォルダーに)生成しますが、ほとんどの場合、ユーザーである必要がなくなるまでそのままです。
具体的な例として:写真を含むフォルダーに無数のプログラムが生成する写真のサムネイルキャッシュファイル(および正当な理由-移植性)は、生成に数時間または数日かかることがありますが、その後、写真アプリを簡単に使用できます。これらの初期キャッシュファイルがすべて一緒にハードリンクされている場合は、後でディレクトリでアプリを開いて大きなキャッシュを構築します...それから何を推測しますか?以前にハードリンクされたキャッシュがあるすべてのフォルダーに間違ったキャッシュが含まれるようになりました。潜在的に、偶発的なデータ破壊につながる可能性のある悲惨な結果を伴います。また、ハードリンクに対応していないバックアップソリューションを爆発させる可能性もあります。
さらに、スナップショット全体を台無しにする可能性があります。スナップショットの重要なポイントは、「ライブ」バージョンを変更し続けることができ、以前の状態にロールバックできる機能です。すべてがハードリンクされている場合でも、同じものに「ロールバック」します。
良いニュースですが、Btrfs clone / reflinkでの重複排除は、そのダメージを取り消すことができるということです(スキャン中、ハードリンクされたファイルは同じものとして表示されるはずです...ハードリンクを考慮しないロジックがない場合)。重複除外を実行する特定のユーティリティ。)