Я только что узнал, что ключ -xx имеет поведение, отличное от простого -x. Однако я не совсем понимаю, почему одиночный ключ -x все еще проходит через привязки в исходном коде? Справочная страница (ниже), кажется, указывает, что этого не должно происходить, и нужно копировать только пустой каталог.

На моей системе linuxmint 18.04

 sudo rsync -avHXxh --delete --progress /mnt/data/ /media/jesse/corsair_data/

пытается скопировать все файлы в подключенном каталоге bind из /mnt/media_library/Pictures в /mnt/data/home/jesse/Pictures

-x, --one-file-system

Это говорит rsync избегать пересечения границы файловой системы при рекурсии. Это не ограничивает возможность пользователя указывать элементы для копирования из нескольких файловых систем, просто рекурсию rsync по иерархии каждого каталога, указанного пользователем, а также аналогичную рекурсию на принимающей стороне во время удаления. Также имейте в виду, что rsync обрабатывает монтирование "bind" на том же устройстве, что и на одной файловой системе.

Если эта опция повторяется, rsync пропускает все каталоги точек монтирования из копии. В противном случае он включает пустой каталог в каждой точке монтирования, с которой он сталкивается (используя атрибуты смонтированного каталога, потому что атрибуты нижележащего каталога точки монтирования недоступны).

Если rsync было приказано свернуть символические ссылки (через --copy-links или --copy-unsafe-links), символическая ссылка на каталог на другом устройстве обрабатывается как точка монтирования. Симлинки на не-каталоги не затрагиваются этой опцией.

0