Rsync – Handling Colons in File Names

filenamesrsync

Other than by renaming the files first, how can I rsync files that may have colons in their names?

Best Answer

Colons are only special in the first directory component of a command line argument. So if you have what looks like a relative path, prepend ./.

$ 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
./

In a script:

case $source in
  /*) :;;
  *) source=./$source;;
esac
case $dest in
  /*) :;;
  *) dest=./$dest;;
esac
rsync "$source" "$dest"
Related Question