Я вижу на rsync странице справочника, что существуют много delete
опции, но действительно не понимают различий между ними. Каковы различия между этими опциями?
--del an alias for --delete-during
--delete delete extraneous files from dest dirs
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during xfer, not before
--delete-delay find deletions during, delete after
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files from dest dirs
--del/--delete_during
: Удаляет файлы из целевого dir, поскольку они копируются (сохраняет память по сравнению с --delete-before
: --delete-before
делает отдельное сканирование для поиска deleteables),
--delete
: Удаляет файлы в целевом каталоге, если они не существуют в исходном каталоге.
--delete-before
: Удалите файлы в целевом каталоге прежде, чем скопировать file-with-same-name с исходного каталога
--delete-during
: Удалите файлы в целевом каталоге ПРИ копировании file-with-same-name из исходного каталога
--delete-delay
: Mark удаляет во время передачи, но ожидайте, пока передача не завершена
--delete-after
: Получатель удаляет после передачи, не прежде... Если бы некоторая другая часть rsync переместила дополнительные файлы в другое место, то Вы хотели бы это вместо --delete-delay
, потому что --delete-delay
решает то, что это собирается удалить посреди передачи, тогда как --delete-after
проверяет каталог на файлы, которые должны быть удалены ПОСЛЕ ТОГО, КАК все закончено.
--delete-excluded
: Удаляет файлы из целевого каталога, которые явно исключены из передачи из исходного каталога.
Точка rsync не копирует, это архивирует. Это - важное различие. Обработка удалила/изменила файлы, очень важно, и во многих случаях детален.
--delete
флаг в особенности является тем, который я видел завинченный много раз. Много людей использует rsync для перемещения файлов в низкоприоритетное устройство хранения данных, и в этом случае Вы хотите файлы, которые Вы перемещаете для тихого СУЩЕСТВОВАНИЯ в целевом каталоге. Это не то, что удаляет, делает: --delete
удостоверяется, что при удалении файла из исходного каталога он ТАКЖЕ удален из целевого каталога, таким образом, место назначения не становится полным спама... Однажды видел, что парень вытер свое резервное копирование, включив новый диск и не выключив его ночной rsync сценарий. Сценарий видел, что исходный dir был теперь пуст, и он удалил каждый файл в целевом dir, таким образом, они будут соответствовать.
Большинство других опций является пространством или связанной производительностью. То, когда Вы удаляете файлы, важно, если Вы хотите удостовериться, что передача успешна, прежде чем Вы сделаете что угодно, но если Ваше устройство является слишком небольшим для обработки 2 копий всей информации, необходимо удалить, когда Вы идете и т.д. Это является немного дурацким из-за своей долгой истории через несколько платформ: некоторые опции были добавлены так, чтобы люди, которые привыкли к определенному поведению, не были смущены.
Существует две вещи, продолжающиеся:
Или отправитель или получатель могут быть проинструктированы, чтобы сделать удаление (я не уверен, почему это имеет значение). Таким образом, когда rsync с компьютерных подключений на rsync сервер с другой стороны, это определяет, кто эффективно дает удалить команду.
То, когда это происходит, довольно легко... перед средствами все файлы удалены, и ЗАТЕМ rsync копии по файлам. во время средств, поскольку это проходит список файлов, это удаляет их когда дело доходит до них, и после средств это ожидает, пока все файлы не передаются, и затем удаляет удаленную сторону. Это имеет значение только, когда передача прервана.