Аргументы, которые вы передаете rsync
: -cav
;проблема, с которой вы столкнулись, - это «a», которое расширяется до -rlptgoD
, как описано в справочной странице , в результате чего вы получаете окончательный список аргументов -crlptgoDv
, переданный rsync.
Хитростьчасть этого - p
, t
, g
и o
, которые сохраняют права доступа (p), времена модификации (t) (что и является причиной изменения синхронизации в вашем текущем примере),группа (g) и владелец (o).Если я правильно понимаю ваш вопрос, то вы хотите:
rsync -crlDv --delete harp_output/ harp_netlify/
В этом мы сохраняем «c» и «v» из вашей текущей команды и используем «r» (для рекурсивной синхронизации)), «l» для сохранения символических ссылок и «D» для сохранения устройств и специальных файлов. Если все, что вам нужно, это рекурсивная синхронизация на основе контрольных сумм, и вам не нужны ссылки или специальные файлы, тогда «r»достаточно, то есть:
rsync -crv --delete harp_output/ harp_netlify/