rsync несколько файлов с двоеточиями в именах

rsync несколько файлов с двоеточиями в именах

rsyncинтерпретирует двоеточия в именах файлов как индикаторы того, что предшествующее — имя удаленной машины. Когда вы пытаетесь выполнить rsync для файла, в имени которого есть двоеточие, rsync обычно путается, выдавая ошибки типа

The source and destination cannot both be remote.
rsync error: syntax or usage error (code 1) at main.c(1166) [Receiver=3.0.9]

или

Unexpected remote arg: 02\:12\:43.481000"
rsync error: syntax or usage error (code 1) at main.c(1232) [sender=3.0.9]

(обратите внимание, что мой вариант использования — это набор файлов с датами в именах)

Как я могу использовать rsync для выборочной отправки файлов с использованием подстановочных знаков. Что-то вроде:

rsync -avz my_special_files* othermachine:/other/path/

решение1

Сделайте это из родительского каталога:

rsync -avz parent_directory/my_special_files* othermachine:/other/path/

и это работает (по крайней мере на Ubuntu 12.04 с протоколом rsync 3.09 версии 30).

Причина? что-то связанное с логикой, которую rsync использует для распознавания хостов. Прямые слеши, которым предшествуют слова, похоже, не считаются хостами. Странно, но когда я использовал find, так что все имена имели префикс "./", это все равно не работало.

Есть несколько дискуссий по этому вопросу,например это, но они не говорят об использовании wild cards и т. п. Однако они вдохновили меня попробовать то, что в итоге сработало.

Связанный контент