Как скопировать папку с символическими ссылками и контактами относительно корня копии?

1055
Josh Comley

Это может быть немного крайним случаем, но я хотел бы знать, есть ли простой способ достигнуть этого.

Предположим, у меня есть следующие настройки (где последние два являются символическими ссылками на первый):

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

Теперь предположим, что я хочу сделать резервную копию D:\Workдля E:\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что будет делать команда копирования для последней опции? В этом случае я бы хотел скопировать файлы напрямую, потеряв символическую ссылку.

Есть ли способ, которым robocopy, xcopy или [anyother] копия могут достичь этого в Windows 10?

1

1 ответ на вопрос

0
liamZ

Взгляните на: Ln Hardlink командной строки

Этот инструмент является своего рода швейцарским армейским ножом NTFS и может делать много вещей, например создавать SmartCopies, которые сохраняют внутреннюю и внешнюю структуру Hardlink / Junction / SymbolicLink, делать инкрементные резервные копии на основе жестких ссылок и многое другое, что не может быть найдено в любом месте.

Я думаю, что то, что вы просите, может быть достигнуто путем:

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

--Записаться следует на каталоги Outer Junctions / Symlink и перестраивает содержимое каталогов Outer Junctions / Symlink внутри иерархии в месте назначения. Развертывание также применяется к Outer Symlink Files, что означает, что развертывание вызывает копирование цели Outer Symlink Files в место назначения.

--copy: Smart Copy в основном создает копию структуры каталогов из исходного местоположения в место назначения, но сохраняет внутреннюю структуру жестких ссылок и отношения внутреннего соединения / символической связи источника и воссоздает эту внутреннюю структуру жесткой связи и внутреннее соединение / отношение символической ссылки в месте назначения.

--backup: также используются списки управления доступом в режиме резервного копирования, также называемые списками контроля доступа, которые содержат защиту для файлов, папок, соединений или символических ссылок, а также зашифрованных файлов.

ln.exe при этом копирует

  • Альтернативные потоки на файлы и папки
  • EA Records для файлов и папок (редко используется)
  • Повторная информация
  • Атрибуты файла
  • Метки времени: время создания, время последнего доступа, время последней записи
  • Разреженные файлы и альтернативные разреженные потоки
  • Зашифрованные файлы
  • списки управления доступом