Мне нужно скопировать структуру каталогов с одного локального диска NTFS на другой (Windows 7+) и сохранить жесткие ссылки, которые существуют в этой структуре каталогов.
Приемлемым решением было бы заменить жесткие ссылки (относительными) символическими ссылками перед копированием, но я не уверен, что это практически осуществимо.
Какие варианты здесь?
ntfs
symbolic-link
hardlink
Настой Эстус
источник
источник
Ответы:
Инструмент для копирования жестких ссылок через отдельные разделы диска
LN - Hardlink командной строки
Команда:
ln --copy x:\dir\dir2 y:\dir\newdir
Ресурс: http://schinagl.priv.at/nt/ln/ln.html
Загрузить: http://schinagl.priv.at/nt/ln/ln.html#contact
Примечание. Похоже, вы просто загружаете это программное обеспечение для архитектуры вашего процессора из ZIP-файла, а также vcredist (Visual C ++ Redistributable) и устанавливаете его. Затем просто извлеките файлы и папки из ZIP-файла в новую папку (.eg
C:\Temp
). В командной строке просто перейдите в эту папку [directory] и затем запустите необходимые команды для расположения дисков, как показано в примере выше. Запускln --help
показывает подробности справки, но приведенный выше пример команды должен копировать вhard links
соответствии с документацией.Расширение Link Shell
Ресурс: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html
Загрузить: http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html#contact
Разделы или функции, представляющие интерес с этим программным обеспечением
Smart Mirror
Clone
Smart Copy
ln - Hardlink командной строки - Снимок экрана загрузки
Расширение Link Shell - Скачать снимок экрана
ИНТЕРЕСНЫЕ ЗАМЕЧАНИЯ
Похоже,
hard links
они привязаны к одному и тому же разделу диска для их файловых указателей и т. Д. И не могут использоваться в нескольких разделах. Кроме того,hard links
в NTFS разделы являются частьюMaster File Table
записей (или, по крайней мере, атрибутов для счетчиков), поэтому их копирование на существующий диск, который имеет свой собственный,MFT
может показаться проблемой, если вы не клонируете побайтно на уровне раздела по крайней мере.источник
Утилита командной строки
rsync
делает то, что вы просите.Предполагая, что ваши старые данные находятся в местоположении A, а ваши новые данные находятся в B, сделайте следующее:
Цитирование из руководства rsync:
Как его получить
rsync
и использовать? Есть 2 простых альтернативы для Windows:Первый вариант: использовать
cygwin
. Это программное обеспечение для Windows. Установите его, добавьтеrsync
на шаге выбора пакетов. Оставьте все остальное по умолчанию. После того, как вы установите его, используйте его оболочку для ввода команды. Если вы хотите, вы можете использовать полный путь,/usr/bin/rsync
а не простоrsync
. Если вы хотите получить доступ к дискам Windows, используйте пути типа "/ cygwin / жестких дисков" и всегда пытайтесь выполнить автозаполнение с помощью TAB.Второй вариант: если это настольный компьютер, используйте живой дистрибутив GNU / Linux. Подготовьте живой образ USB, загрузитесь с него, смонтируйте нужные диски и запустите rsync. Если живого образа нет
rsync
, установите его. (apt-get install rsync
в Debian и его производных.) Если вы еще не знакомы с экосистемой Linux, Cygwin может быть проще.источник
A
это каталог, то этоB
должно быть имя, которое каталог получит для цели (в отличие,cp
например, где последний аргумент является родительским каталогом)ln
как показано в другом ответе. Cygwinrsync
из этого ответа может работать так же, как я уже говорил.ln --copy
. Что касается GUI, я предполагаю, что «Smart Copy» - это то, что вы ищете.Попробуйте заглянуть в Rsync для Windows. Поскольку rsync имеет возможность сохранять жесткие ссылки (флаг -H, --hard-links), он должен выполнять эту работу (источник: https://download.samba.org/pub/rsync/rsync.html ).
Вы можете попробовать что-то вроде cwRsync: https://www.itefix.net/cwrsync#, у этого есть GUI.
источник
Очень поздно на вечеринку здесь.
Клин клином вышибают. Так как robocopy позволил беспорядок, мы будем использовать robocopy, чтобы очистить его.
Создайте пустой каталог, затем используйте robocopy, чтобы скопировать пустой каталог в целевой каталог (который имеет супер длинные пути), используя опцию очистки.
Это должно работать.
источник