Я хочу передать только измененные и новые файлы, используя rsync
в Ubuntu 14.04. Я не хочу переносить все каждый раз. Я не беспокоюсь о том, чтобы проверить, действительно ли изменилось содержимое файлов. Подобные сообщения существуют, но я не уверен, потому что документация не соответствует тому, что говорится в этих сообщениях.
Документация в rsync
говорит:
-u, --update
Это заставляет rsync пропускать любые файлы, для которых целевой файл уже существует и имеет дату более позднюю, чем исходный файл.
http://ss64.com/bash/rsync_options.html
редактировать: Нашел другую (возможно, более официальную) страницу документации. Он говорит:
-u, --update
пропускать более новые файлы на ресивере
https://download.samba.org/pub/rsync/rsync.html
Я считаю, что это плохо сформулировано. Во-первых, на первом написано «свидание». Я предполагаю, что это на самом деле означает «отметка времени». Во-вторых, что более важно, это, по-видимому, означает, что файл как в источнике, так и в месте назначения с одной и той же меткой времени будет повторно передан. В документации четко сказано, что он будет пропускать файл только в том случае, если в целевом файле есть более новая (то есть более поздняя) отметка времени (T_d
), чем метка времени исходного файла (T_s
), подразумевая, что он будет передаваться, когда целевой файл старше или равен исходному файлу: Пропуск передачи, если T_d > T_s
означает, что он переносится, когда T_d <= T_s
.
Это важный вопрос для меня, потому что, если вы хотите перенести все новые и измененные файлы из исходной папки в целевую папку с минимальными затратами времени (сеть / io / cpu / time), флаг обновления может просто повторно передать все каждый раз.
А может я что-то упускаю, или что-то не понимаю?
(Этот пост был отклонен на stackoverflow.com из-за того, что он не по теме. Добавляем его и ответ здесь на случай, если он может помочь людям в будущем.)
Нашел следующее в man
расширяя флаг:
-u, --update
Это заставляет rsync пропускать любые файлы, которые существуют в месте назначения и имеют более новое время изменения, чем исходный файл. (Если существующий файл назначения имеет время модификации, равное времени изменения исходного файла, он будет обновлен, если размеры отличаются.)
https://download.samba.org/pub/rsync/rsync.html
Таким образом, в равном случае проверяется размер файлов и передается только в том случае, если они различны. Я в порядке с этим.