You escape spaces in a remote path when using rsync over a remote SSH connection under Apple OS X / Linux or Unix like operating systems. If a filename contains whitespace, you can use any one of the following method to get rid of it.
Syntax
The syntax is as follows to copy a file called “/path/to/This is a test youtube video.mp4“:
rsync -av user@desktop:'This\ is\ a\ test\ youtube\ video.mp4' /path/to/here |
OR
rsync -av 'user@desktop:This\ is\ a\ test\ youtube\ video.mp4' /path/to/here |
You can also pass the -s or --protect-args option to avoid no space-splitting ( wildcard chars only ). The syntax is (note black slashes are removed with this option):
rsync -avs 'user@desktop:This is a test youtube video.mp4' /path/to/here |
OR
rsync -av --protect-args 'user@desktop:This is a test youtube video.mp4' /path/to/here |
OR
rsync -av --protect-args 'user@desktop:This is a test youtube video.mp4' '/path/to/My Download Folder' |
To copy files to remote server called nas01 at /data/old.macbook.june-2013/MacMini/VirtualBox VMs/ folder type:
# cd to "$HOME/VirtualBox VMs/" # cd ~/VirtualBox\ VMs/ # Make a backup to nas01 server # rsync -avrPz . root@nas01:'/data/old.macbook.june-2013/MacMini/VirtualBox\ VMs/' |
Sample outputs:
A note about older versions of rsync
If you are using an older versions of rsync Try the following syntax:
rsync -av user@server2:'dir1/file1 dir2/file2' /path/to/dest rsync user@macbook.local::'modname/dir1/file1 modname/dir2/file2' /path/to/here/dest |
See also:
- BASH Shell: For Loop File Names With Spaces
- man page rsync
Hi,
Thanks, nice and useful article