Rsyncing несколько файлов с пробелами в именах

Я пытаюсь создать резервные копии файлов на сервере, но у меня проблемы с файлами с белыми пробелами в именах.

Я использую эту команду в терминале:

FILES="testing/space\ in\ filename testing/and\ again"; rsync -v $FILES server::address 

testing – это папка с двумя файлами, имеющими space in filename and again .

Когда я запускаю это, я получаю следующий результат:

 rsync: link_stat "/home/user/testing/space\" failed: No such file or directory (2) rsync: link_stat "/home/user/in\" failed: No such file or directory (2) rsync: link_stat "/home/user/filename" failed: No such file or directory (2) rsync: link_stat "/home/user/testing/and\" failed: No such file or directory (2) rsync: link_stat "/home/user/again" failed: No such file or directory (2) 

Я изучал использование --protect-args , но я не смог получить эту работу.

One Solution collect form web for “Rsyncing несколько файлов с пробелами в именах”

Вы можете временно изменить IFS (внутренний разделитель полей):

 FILES="long filename with spaces another one" OLDIFS="$IFS" IFS=$'\n' rsync -v $FILES server::address IFS="$OLDIFS" # restores default behaviour 

Обратите внимание, что $'\n' – это багизм. Вы можете попробовать это для других оболочек Posix:

 IFS=" " 

Для обработки нескольких файлов просто отделяйте их от вашего нового IFS (в приведенном выше случае символ новой строки). Вместо символа новой строки вы можете даже использовать любые символы, которые вам нравятся.

  • Трейлинг пространства при копировании из gnome-терминала с использованием zsh
  • Полоса прокрутки пробелов из файлов
  • Git Server: игнорировать пробельные изменения в новых коммитах
  • Заменяйте каждую вкладку ТОЛЬКО в начале каждой строки пробелами
  • Использование файлов, имеющих пробелы в их имени в трубах
  • Документ с отступом здесь вызывает синтаксическую ошибку
  • Linux и Unix - лучшая ОС в мире.