web-dev-qa-db-ja.com

コピールートを基準にしてシンボリックリンクとジャンクションを維持しているフォルダをコピーするにはどうすればよいですか?

これは少しエッジケースかもしれませんが、これを達成する簡単な方法があるかどうかを心から知りたいと思います。

次の設定があるとします(後者の2つは最初の2つへのシンボリックリンクです)。

  • D:\ Work\CommonStuff
  • D:\ Work\Project1\Stuff-> D:\ Work\CommonStuff
  • D:\ Work\Project2\Stuff-> D:\ Work\CommonStuff

ここで、D:\WorkE:\Workにバックアップしたいとします。

リンクを比較的維持して、次のようにしたいと思います。

  • E:\ Work\CommonStuff
  • E:\ Work\Project1\Stuff-> D:\ Work\CommonStuff
  • E:\ Work\Project2\Stuff-> D:\ Work\CommonStuff

もちろん、私が持っていた場合、私はそれを理解しています:

  • D:\ Work\CommonStuff
  • D:\ Work\Project1\Stuff-> D:\ Work\CommonStuff
  • D:\ Work\Project2\Stuff-> D:\ Work\CommonStuff
  • D:\ Work\Project3\Stuff-> D:\ OtherCommonStuff

D:\Workをコピーするだけの場合、copyコマンドは最後のオプションに対して何をするのでしょうか。この場合、シンボリックリンクを失って、ファイルを直接コピーしたいと思います。

Windows 10でrobocopy、xcopy、または[anyother] copyがこれを実現する方法はありますか?

2
Josh Comley

見てみましょう: Lnコマンドラインハードリンク

このツールは一種のNTFSスイスアーミーナイフであり、内部および外部のハードリンク/ジャンクション/シンボリックリンク構造を保持するSmartCopiesの作成、ハードリンクベースの増分バックアップなど、見つけることができない多くのことを実行できます。どこでも。

私はあなたが求めることは次の方法で達成できると思います:

ln.exe --unroll --copy --backup D:\Work E:\Work

--Unrollは、外部ジャンクション/シンボリックリンクディレクトリに従い、宛先の階層内の外部ジャンクション/シンボリックリンクディレクトリのコンテンツを再構築します。アンロールは外部シンボリックリンクファイルにも適用されます。つまり、アンロールすると、外部シンボリックファイルのターゲットがコピー先の場所にコピーされます。

--copy:Smart Copyは基本的に、ソースの場所から宛先へのディレクトリ構造のコピーを作成しますが、ソースの内部ハードリンク構造と内部ジャンクション/シンボリックリンク関係を保持し、この内部ハードリンク構造と内部ジャンクション/を再作成します。宛先の場所でのシンボリックリンク関係。

--backup:バックアップモードACL(アクセス制御リスト)を使用します。これには、ファイル、フォルダー、ジャンクションまたはシンボリックリンクのセキュリティが含まれ、暗号化ファイルもコピーされます。

したがって、ln.exeはコピーします

  • ファイルとフォルダの代替ストリーム
  • ファイルとフォルダのEAレコード(めったに使用されません)
  • 情報の再解析
  • ファイル属性
  • タイムスタンプ:作成時間、最終アクセス時間、最終書き込み時間
  • スパースファイルと代替スパースストリーム
  • 暗号化されたファイル
  • ACL
1
liamZ