Как избежать ненужного удаления и повторного копирования перемещенных папок при использовании rsync?

Как избежать ненужного удаления и повторного копирования перемещенных папок при использовании rsync?

Я читал, что rsync не может обнаружить перемещенные папки и просто удаляет их и копирует заново в новую структуру папок.

Поскольку единственное изменение, которое я внес в свою основную копию, — это простое введение верхней папки для хранения моих исходных файлов, а именно:

folder1
folder2
folder3

в

top\folder1
top\folder2
top\folder3

Мне было интересно, можно ли сделать то же самое вручную в моей резервной копии, как-то исправить время модификации обеих верхних папок, чтобы последующие вызовы rsync выполнялись нормально.

Будет ли это работать? Если да, то как? Если нет, то какой рекомендуемый способ решения этой проблемы? Или мне следует изначально запустить rsync с другими параметрами? (вместо того, rsync -a --delete /mnt/SRC /mnt/DESTчто я сейчас использую)

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

решение1

Да, вы можете вручную переместить резервную копию, а затем запустить rsync. Вам не нужно менять время модификации; просто позвольте rsync сделать это.

Такое переименование трудно обнаружить автоматически, поэтому обычным решением является его ручное дублирование.

решение2

Если вы перемещаетесь, вам не придется вручную обновлять время модификации файлов.

Если вас не особо волнует зеркалирование новой структуры каталогов, а нужны только файлы, вы также можете rsync --(options) /mnt/SRC/newdir/ /mnt/DEST. Обратите внимание на дополнительный слеш на стороне SRC, иначе вам придется копировать все заново.

решение3

Предложенное решениездесьсделал свое дело:

rsync -vrt --size-only /src/ /dest/

Параметр --size-only rsyncигнорирует временные метки, а -t (сохранить время изменения) заставляет rsyncисправить любые несоответствующие времена изменения в целевой копии.

Связанный контент