I need to transfer a file called ‘some cool movie.avi’ that contains whitespace under rsync. How do I escape a filename or directory name with spaces in them while using rsync command under Linux / *BSD / Unix like operating systems? How do I use rsync when files / dirs contain spaces?

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. [donotprint]
Tutorial details
Difficulty level Easy
Root privileges No
Requirements rsync
Est. reading time 1m
[/donotprint] 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:

Fig.01: rsync over ssh when directory names have spaces on local or remote server

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:
  1. BASH Shell: For Loop File Names With Spaces
  2. man page rsync

🐧 Get the latest tutorials on Linux, Open Source & DevOps via RSS feed or Weekly email newsletter.

🐧 1 comment so far... add one


CategoryList of Unix and Linux commands
Disk space analyzersdf duf ncdu pydf
File Managementcat cp mkdir tree
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Modern utilitiesbat exa
Network UtilitiesNetHogs dig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg glances gtop jobs killall kill pidof pstree pwdx time vtop
Searchingag grep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
1 comment… add one
  • Jalal Hajigholamali Nov 29, 2012 @ 3:50

    Hi,

    Thanks, nice and useful article

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre> for code samples. Still have questions? Post it on our forum