1

Я использую следующую команду rsync, чтобы определить все файлы, которые являются более новыми (или отличаются по контрольной сумме) в моем исходном каталоге, или не существуют в целевом каталоге:

rsync -rltDO -hvinuczz /source/ /dest

и -i чтобы узнать точную причину, по которой файл будет передан / обновлен. Я опускаю dir-times (-O), поскольку в месте назначения есть обновленные каталоги, которые будут отображаться в выходных данных, генерируемых rsync. Проблема, с которой я столкнулся с этой командой: она перечисляет новые (то есть, не существующие в исходном) файлы в месте назначения, например, так: >f+++++++++ .

Итак, мои вопросы:

(1) Почему -i перечисляет их вообще? Мои параметры четко указывают, что я хочу синхронизировать источник с местом назначения, все содержимое, которое является более новым (или имеет другую контрольную сумму) в источнике. Файлы, существующие в месте назначения, но не в источнике, не попадают в эту категорию.

(2) Какие опции достигаются: Перечислите что-нибудь в источнике, которое либо не существует в месте назначения, либо существует и является более новым (или имеет контрольную сумму diff) в источнике?

Обратите внимание, что man rsync описывает -i так:

-i , --itemize-changes

    Запрашивает простой подробный список изменений, которые вносятся в каждый файл, включая изменения атрибутов.  Это точно так же, как указание --out-format = '% i% n% L'.  Если вы повторите этот параметр, то также будут выведены неизмененные файлы, но только если принимающий rsync имеет версию не ниже 2.6.7 (вы можете использовать -vv с более старыми версиями rsync, но это также включает вывод других подробных сообщений),

    Выход «% i» имеет загадочный вывод длиной 11 букв.  Общий формат подобен строке YXcstpoguax , где Y заменяется типом выполняемого обновления, X заменяется типом файла, а другие буквы представляют атрибуты, которые могут выводиться, если они изменяются.

    Типы обновлений, которые заменяют Y , следующие:

    • < Означает, что файл передается на удаленный хост (отправлено).
    • A > означает, что файл передается на локальный хост (получен).
    •    ︙

Итак >f+++++++++ говорит мне, что есть новый файл для передачи - и если я интерпретирую документацию, он должен быть получен на локальном конце (== источник). В самом деле?

0