Я хотел бы синхронизировать файлы из папки /media/alex/Disk1/Movies в папку с именем /media/alex/Disk2/Movies . Я хочу скопировать каждый файл из /media/alex/Disk1/Movies или из подкаталога в правильное положение /media/alex/Disk2/Movies , если он не существует. Размер и атрибуты времени файлов не имеют значения.

Например, у меня есть один файл, который существует только на Disk1: /media/alex/Disk1/Movies/Experimental/test.avi , поэтому только этот единственный файл должен быть скопирован в /media/alex/Disk2/Movies/Experimental .

Я пробовал использовать синтаксис

rsync -v -n -auv  --list-only /media/alex/Disk1/Movies  /media/alex/Disk2/Movies

но в нем перечислены все файлы в каталоге '/media/alex/Disk1/Movies', даже те, которые существуют в /media/alex/Disk3/Movies . Как правильно понять синтаксис rsync ?

1 ответ1

1

пытаться

rsync -n -auv --size-only /media/alex/Disk1/Movies/  /media/alex/Disk2/Movies

и если это делает то, что вы хотите, вы можете удалить аргумент -n

Некоторое объяснение:

  • --size-only гарантирует, что вам не нужно прикасаться к фильмам в папке назначения для выполнения контрольной суммы, и вам все равно, если время отличается (так как содержимое файлов фильмов не меняется, это должно быть в порядке)
  • синтаксис rsync может быть немного запутанным. В вашем примере вы пропустили / behind /media/alex/Disk1/Movies , который фактически скопирует всю папку Movie в другую папку Movie (так что это будет /media/alex/Disk2/Movies/Movies)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .