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-ключе? К сожалению, никто не дал удовлетворительного ответа.
Жиль "ТАК - перестать быть злым"
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.