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 (в приведенном выше случае символ новой строки). Вместо символа новой строки вы можете даже использовать любые символы, которые вам нравятся.

  • Как сортировать имена файлов с пробелами в них и объединять файлы?
  • Перейдите в каталог, содержащий пробел
  • Как я могу отредактировать мой скрипт bash для учета пробелов?
  • Как обрабатывать пробелы в именах путей, когда переменная содержит несколько путей
  • Заменяйте каждую вкладку ТОЛЬКО в начале каждой строки пробелами
  • Git Server: игнорировать пробельные изменения в новых коммитах
  • Interesting Posts

    Всегда ли сценарий инициализации возвращает правильный код выхода при запуске состояния?

    Изменение записей в файлах с фиксированной шириной

    Использование процессора KVM

    ошибка монтирования "не является блочным устройством"

    Постоянное обновление OpenBSD с помощью openup

    Как выйти из режима поиска истории bash?

    Как перечислять все команды, содержащиеся в определенном пакете rpm?

    GRUB v2: Практический способ управления численными записями для использования с grub-reboot

    traceroute / mtr из нескольких мест, как мы можем это сделать? (Или альтернативный способ)

    как запустить запуск скрипта на live-дистрибутиве?

    Почему перемещение файла в разделе ext4 так медленно?

    Как я могу получить список пакетов, которые я установил, используя apt-get?

    Преобразование строк в столбцы файла

    Почему gksu запрашивает у меня пароль root, а не мой пароль?

    Спящие процессы получают одинаковое время процессора?

    Linux и Unix - лучшая ОС в мире.