rsync: двоеточие в именах файлов

23

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

象 嘉 道
источник
Убедитесь, что вы используете, dir/а не dir/*в аргументах rsync.
grawity
Проблема возникает, когда я rsync с жесткого диска на флеш-карту памяти:rsync: mkstemp "/media/verd/rence/.Using an expressive work: fact or fiction.pdf.RbjlKK" failed: Invalid argument (22) rsync: mkstemp "/media/verd/rence/.What's in a concept: structural foundations for semantic networks.pdf.tLXoZz" failed: Invalid argument (22)
道 嘉 道
Для будущих читателей, пожалуйста, обратите внимание, что это зависит от файловой системы: типичные для Windows жесткие диски с NTFS не могут содержать файлы, :в первую очередь
phil294

Ответы:

22

Двоеточия являются специальными только в первом компоненте каталога аргумента командной строки. Так что, если у вас есть то, что выглядит как относительный путь, сделайте предварительный перенос ./.

$ mkdir sou:rce
$ rsync -a sou:rce/ de:st/
The source and destination cannot both be remote.
$ rsync -av ./sou:rce/ ./de:st/
sending incremental file list
created directory ./de:st
./

В скрипте:

case $source in
  /*) :;;
  *) source=./$source;;
esac
case $dest in
  /*) :;;
  *) dest=./$dest;;
esac
rsync "$source" "$dest"
Жиль "ТАК - перестань быть злым"
источник
Спасибо, Гиль. Проблема возникает, когда я rsync с жесткого диска на флеш-карту памяти:rsync: mkstemp "/media/verd/rence/.Using an expressive work: fact or fiction.pdf.RbjlKK" failed: Invalid argument (22) rsync: mkstemp "/media/verd/rence/.What's in a concept: structural foundations for semantic networks.pdf.tLXoZz" failed: Invalid argument (22)
道 嘉 道
3
@Kejia Ah: А, хорошо, ваша проблема - переименовать-и-rsync, а не передавать двоеточия в rsync. Этот вопрос ранее задавался на сайте Ubuntu: как заменить двоеточия при rsync на USB-ключе? К сожалению, никто не дал удовлетворительного ответа.
Жиль "ТАК - перестать быть злым"