Удаляет ли rsync файлы, папки в месте назначения по умолчанию?


Files

предположим, что /foo/src содержит только A.c и /foo/dest содержит A.c и B.c. Предположим, я выполняю следующую команду:

rsync /foo/src/ /foo/dest

будет rsync стереть B.c?

папки

теперь предположим, что /foo/src содержит каталог A С некоторыми файлами внутри него и что /foo/dest содержит каталоги A и B, каждый с некоторыми файлами внутри них. И предположим, что я управляю следующая команда (опция-A включает -r, рекурсивная):

rsync -a /foo/src/ /foo/dest

будет rsync стереть B и его содержимое?

5
задан Crowder
источник

1 ответов

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

  • -- del (псевдоним --delete-during)
  • --delete (удаляет посторонние файлы из dest dirs)
  • --delete-before (получатель удаляет перед xfer [по умолчанию])
  • --delete-during (получатель удаляет во время xfer, не раньше)
  • --delete-after (получатель удаляет после xfer, не раньше)
  • --delete-excluded (также удалить исключенные файлы из dest dirs)
  • --max-delete=NUM (удалять не более num файлов)

Так как вы специально вызвали - a вариант, вот что говорит страница man

- a, -- archive >

Это эквивалентно -rlptgoD. Это быстрый способ сказать, что вы хотите рекурсии и хотят сохранить почти все (с-H-заметное упущение). Единственным исключением из приведенной выше эквивалентности является when --files-from указывается, в этом случае-r не подразумевается.

отметим, что - a не сохраняет жесткие ссылки, потому что поиск многосвязных файлов стоит дорого. Необходимо отдельно указать - H.

таким образом, кажется, что ответ на ваш вопрос-нет, он не будет удален учитывая ваши примеры.

HTH

45
отвечен SaxDaddy 2014-03-19 00:25:22
источник

Другие вопросы bash macos rsync unix