rsync с использованием функции args

Я пытаюсь создать функцию BASH, которую я могу использовать для передачи аргументов в rsync, чтобы указать файлы и / или каталоги для загрузки. Предположим, что у сервера есть следующие файлы, которые я хотел бы загрузить (пробелы и подчеркивания преднамеренно … важная часть состоит в том, что в них есть пробелы):

dir1/file 1 with really long name.txt dir1/file 2_with_shorter_name.txt 

В настоящее время у меня есть следующее:

 CMD="ssh -i~/.ssh/some_key" LOGIN="user@server.com" dl() { rsync -Pzr --compress-level=9 -e "$CMD" "$LOGIN":"$@" ./ } 

Я пытаюсь вызвать эту функцию так, чтобы загрузить эти два файла:

 dl "dir1/file\ *" 

(Я бы очень хотел, чтобы передать звездочку в мою функцию dl чтобы она могла быть передана через rsync на сервер)

Но rsync выходит со следующей ошибкой:

 receiving incremental file list rsync: link_stat "/home/user/dir1/file\ *" failed: No such file or directory (2) rsync error: some files/attrs were not transferred (see previous errors (code 23) at main.c(1655) [Receiver=3.1.1] rsync: [Receiver] write error: Broken pipe (32) 

Я подозреваю, что что-то не так с моим цитированием здесь … никто не знает, что я делаю неправильно? Обратите внимание: если я просто вызову rsync сам по себе, а не в функции, он работает так, как ожидалось:

 rsync -Pzr --compress-level=9 -e "ssh -i~/.ssh/some_key" "user@server.com":"dir1/file\ *" ./ 

ОБНОВИТЬ:

Выходной сигнал ssh -v имеет следующую строку:

 rsync --server --sender -vrze.iLsfx --compress-level=9 . dir1/file\\ * 

К моему удивлению, команда на самом деле магически работает сейчас, и файлы загружаются. Может, у меня была опечатка раньше на пути, который я проходил? К сожалению, запись .bash_history была удалена, поэтому я не могу сказать. В любом случае, эта команда rsync выглядит правильно?

  • Почему rsync обрезает этот путь?
  • предотвращать параллельную работу резервного копирования
  • Как правильно настроить разрешения каталога веб-сервера
  • rsync определенные файлы, исключая остальные, игнорируя каталог .svn /, рекурсивно
  • получить rsync для разыменования символических ссылок, представленных на cmdline, например find -H
  • Возможно ли мониторинг rsync с помощью устройства pts?
  • rsync: продолжить или в произвольном порядке
  • Будет ли rsync использовать дельта-кодирование, даже когда я копирую между локальными жесткими дисками?
  • rsync'ing несколько пар {src, dest}
  • Rsync пропускает зашифрованный (но установленный) домашний каталог
  • sbopkg не работает с прокси-сервером
  • Interesting Posts

    Уведомление о регистрации рабочего стола dbus

    Могу ли я использовать шрифт Xromium X каждый раз, когда CSS хочет шрифт Y?

    Может ли Bash Variable Expansion выполняться непосредственно при вводе пользователя?

    Разделение файла по размеру, но убедитесь, что оно заканчивается символом новой строки

    удаленный рабочий стол на хосте

    Разрыв жесткой связи на месте?

    Загрузочный раздел на CentOS 6

    Совпадение шаблонов находит равным или меньше, чем использование регулярного выражения в awk

    Включение USB-накопителей только на определенном USB-порту или для учетной записи пользователя

    Установка PXE с VM на другую VM

    значение этой строки в службе, созданной с использованием sysintv

    Использование бриз-темных приложений, отличных от KDE?

    Невозможно сохранить изменения в системных настройках в Debian Wheezy

    Сделать `rsync -link-dest` поиск файлов рекурсивно

    hack mac g4 powerbook для загрузки Linux?

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