web-dev-qa-db-ja.com

ファイルが同一の場合にコピーする代わりに、ファイルをコピーしてハードリンクを作成する方法

Windows用のツールはありますか?

  • あるディレクトリを別のディレクトリにコピーする
  • コピーしたコンテンツを読む
  • mD5を生成する
  • 現在のファイルが以前にコピーされたファイルと同一である場合、コンテンツを書き込む代わりに、宛先ディレクトリにハードリンクを作成しますか?
3
est

直後にハードリンクするためだけにコンテンツをコピーする場合は、すぐにハードリンクを生成してみませんか? Link Shell Extension この特定の仕事を簡単にします。

その特定の一連のアクションを実行する必要がある理由がある場合、LSEの作成者は、 dupemerge というコマンドラインツールを作成して、要求していることをほぼ正確に実行します。

覚えておくべきことの1つは、NTFSはハードリンクに対して「コピーオンライト」セマンティクスを実行しないということです。何かがファイルの内容を変更した場合、それらはすべて本質的にディスク上の同じデータ範囲のディレクトリエントリであるため、すべてのハードリンクバージョンはすぐに「更新」されます。さらに、多くのプログラムは、ファイルを上書きするのではなく、「一時ファイルに保存、元のファイルを削除、一時ファイルの名前を古い名前に変更」手順を実行します。これにより、古いデータ範囲を指しているため、データへの他のハードリンクが効果的に切断されます。

5
afrazier

これは、FINDDUPEを使用して実行できます。FINDDUPEは ここ にあります。
ソースフォルダーとしてsrcを、宛先フォルダーとしてdestを検討してください。

xcopy /I /E src dest
finddupe -hardlink -ref src dest

注:ハードリンクはNTFSでのみ機能します

1
qwertzguy