2012-06-06 4 views
1

У нас есть папка источника «S», пункт назначения «D» и «O».Как синхронизировать исходные и целевые папки, когда адресат содержит только жесткие ссылки NTFS.

D - это копия O, использующая жесткую ссылку NTFS для всех файлов.

Теперь нам нужно синхронизировать S и D и копировать только измененные файлы из S в D.

Robocopy.exe делает это, однако он переписывает файлы и в результате файлы были изменены в обоих D и O, но мы хотим, чтобы файлы в O оставались неповрежденными, несмотря ни на что.

Чтобы правильно обновить копию жесткой ссылки, необходимо удалить файл в D (чтобы разбить ссылку), а затем создать файл с тем же именем вместо переопределения.

Поддерживает ли robocopy это? Возможно, для этого есть специальный параметр или есть ли другая бесплатная утилита (предпочтительный открытый исходный код), который знает, как правильно обновлять файл, если это жесткая ссылка?

+0

Там нет ничего ** **, что делает один экземпляр файла «HardLink», делая другой - «оригинал». Они * оба * «первоклассные» - не являются второстепенными, ни операционной системой, ни вам. Помните об этом, говоря, что папка «только» содержит жесткие ссылки, потому что это сами файлы *, без вопросов! – Mehrdad

+0

Скопируйте D в D2, удалите D, переименуйте D2 в D. И в будущем не используйте жесткие ссылки. –

+0

Mehrdad, спасибо, после публикации вопроса я понял, что оба файла (один в O и один в D) являются жесткими ссылками, и поскольку мне нужен инструмент, который всегда делает это следующим образом: создайте временный файл, удалите оригинал, переименуйте temp к оригинальному поведению. – Kiryl

ответ

0

Вы могли бы попробовать использовать Rsync - см этот пост для деталей, в том числе готовых сценариев резервного копирования:

How to create rsync-like hard link backups with VSS on Windows

+0

Спасибо Simon!rsync кажется хорошим вариантом в нашем случае. – Kiryl