Linux/Unix:Rsync复制带有空白和空格的文件和目录名称

时间:2020-01-09 10:43:30  来源:igfitidea点击:

如何传输一个名为cool.mov的文件,该文件在rsync下包含空格。在Linux/* BSD/Unix等操作系统下使用rsync命令时,如何在文件名或者目录名中转义空格?当文件/目录包含空格时,如何使用rsync?在Apple OS X/Linux或者Unix之类的操作系统下通过远程SSH连接使用rsync时,会在远程路径中转义空格。 如果文件名包含空格,则可以使用以下任何一种方法来删除它。

语法

复制以下文件的语法如下:/path/to /这是一个测试youtube video.mp4:

rsync -av user@desktop:'This\ is\ a\ test\ youtube\ video.mp4' /path/to/here

或者

rsync -av 'user@desktop:This\ is\ a\ test\ youtube\ video.mp4' /path/to/here

您也可以通过-s或者--protect-args选项来避免没有空格分割(仅通配符)。
语法为(请注意,使用此选项可删除黑色斜杠):

rsync -avs 'user@desktop:This is a test youtube video.mp4' /path/to/here

或者

rsync -av --protect-args 'user@desktop:This is a test youtube video.mp4' /path/to/here

或者

rsync -av --protect-args 'user@desktop:This is a test youtube video.mp4' '/path/to/My Download Folder'

要将文件复制到/data/old.macbook.june-2013/MacMini/VirtualBox VMs /文件夹中的名为nas01的远程服务器,请执行以下操作:

# 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/'

关于旧版本rsync的说明

如果使用的是rsync的旧版本,请尝试以下语法:

rsync -av user@server2:'dir1/file1 dir2/file2' /path/to/dest
rsync [email protected]::'modname/dir1/file1 modname/dir2/file2' /path/to/here/dest