チェックサムの違いを維持しながら、1つのフォルダから同じファイルを削除するように2つのフォルダをマージする方法は?

チェックサムの違いを維持しながら、1つのフォルダから同じファイルを削除するように2つのフォルダをマージする方法は?

異なる時点でドライブから回復する必要がある状況があります。このドライブはファイルの存在が異なるだけでなく、いくつかの破損がある可能性があり、その多くは明らかに破損しています。

左フォルダの名前は「A」、右フォルダの名前は「B」です。

私は次のように2つの画像をマージする責任があります。

  1. BにはあるがAにはないすべてのファイルをAに移動する必要があります。
  2. 両方の場所に存在し、同じファイルはすべてBから削除する必要があり、最後に
  3. 異なるチェックサムを持つファイルは B に残る必要があり、A と B の間で異なるファイルを手動で比較できます。ただし、チェックサムが異なるファイル(実際のコンテンツなど)以外は、Bにファイルがあってはなりません。他のコンテンツを維持してください。

ノート:現在の時点では、日付はほとんど重要ではありません。いいねメタデータに前の日付を保持します。

どうすればきれいに処理できますか?残念ながら、数十テラバイトのデータに対してこれを行う必要があるため、これを自動化する方法がわからない場合は、プロセスが非常に長くなります。コンテンツの90〜95%が同じように見えるため、手動比較を準備するには、「設定して忘れてしまう」アプローチを開発する必要があります。

ベストアンサー1

2段階と3段階が一番難しいようですので、その段階から始めます。

rdfind重複したファイルを見つけるためのツールがあります。重複が検出されたらどうするかを決定します。あなたの場合はBから削除しようとしていますrdfind -deleteduplicates true A B。 AとBに同じファイルがある場合は、Aにファイルを保持します。他のオプションは、コピーをハードリンクまたはソフトリンクに置き換えるか、結果を報告することです。

その後、Bに保存されているファイルは、Bに固有のファイルであるか、BのファイルがAのファイルとは異なります。唯一のファイルをBからA:に移動し、mv -i B/* A/上書きnoするかどうかを尋ねるたびに応答します。自動化を使用してこれを行うことができますyes no | mv -i B/* A/。 GNU mvを使用している場合mv --no-clobber B/* A/

もちろん、実際のデータを使用する前に練習が必要です。 AとBのファイルを指すハードリンクツリーを簡単に作成し、そこでmkdir training; cp -lr A training; cp -lr B training練習することができます。

おすすめ記事