rsync:文件名中的冒号

象嘉道*_*象嘉道 33 rsync filenames

除了首先重命名文件之外,我如何处理rsync名称中可能包含冒号的文件?

Gil*_*il' 33

冒号仅在命令行参数的第一个目录组件中是特殊的。因此,如果您有看起来像相对路径的内容,请添加./.

$ 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
./
Run Code Online (Sandbox Code Playgroud)

在脚本中:

case $source in
  /*) :;;
  *) source=./$source;;
esac
case $dest in
  /*) :;;
  *) dest=./$dest;;
esac
rsync "$source" "$dest"
Run Code Online (Sandbox Code Playgroud)

  • @Kejia柯嘉:啊,好吧,你的问题是rename-and-rsync,不是给rsync传冒号。这个问题之前在 Ubuntu 网站上出现过:[当我在 USB 密钥上同步时如何替换冒号?](http://askubuntu.com/questions/11634/how-can-i-substitute-colons-when- i-rsync-on-a-usb-key)不幸的是没有人给出令人满意的答案。 (3认同)