![查看所有 Bash/Shell 脚本相关的常见问题解答](https://www.alaica.com/wp-content/uploads/linux-89.png)
我需要传输一个名为“some Cool movie.avi”的文件,该文件在 rsync 下包含空格。在 Linux / *BSD / Unix 等操作系统下使用 rsync 命令时,如何转义包含空格的文件名或目录名?当文件/目录包含空格时如何使用 rsync?
在 Apple OS X / Linux 或类 Unix 操作系统下通过远程 SSH 连接使用 rsync 时,可以转义远程路径中的空格。[请勿打印]
教程详情 | |
---|---|
难度级别 | 简单的 |
根权限 | 不 |
要求 | 同步 |
美东时间。阅读时间 | 2分钟 |
[/donotprint] 如果文件名包含空格,您可以使用以下任一方法来删除它。
句法
复制名为“”的文件的语法如下/path/to/This is a test youtube video.mp4:
rsync -av user @ desktop: 'Thisisatestyoutubevideo.mp4' / path / to / here
或者
rsync -av 'user@desktop:This is a test youtube video.mp4' /路径/到/这里
您还可以传递-sor--protect-args选项以避免空格分割(仅限通配符)。语法是(注意使用此选项删除黑色斜杠):
rsync -avs 'user@desktop:这是一个测试 youtube video.mp4' / path / to / here
或者
rsync -av --protect-args 'user@desktop:这是一个测试 youtube video.mp4' / path / to / here
或者
rsync -av --protect-args 'user@desktop:这是一个测试 youtube video.mp4' '/path/to/我的下载文件夹'
要将文件复制到位于 /data/old.macbook.june-2013/MacMini/VirtualBox VMs/ 文件夹中名为 nas01 的远程服务器,请键入:
# cd 到“$HOME/VirtualBox VMs/” # cd ~ / VirtualBox VMs / # 备份到 nas01 服务器 # rsync -avrPz . 根@ nas01:'/data/old.macbook.june-2013/MacMini/VirtualBox VMs/'
输出示例:
![图 01:当本地或远程服务器上的目录名称包含空格时,通过 ssh 进行 rsync](https://www.alaica.com/wp-content/uploads/linux-16.jpg)
图 01:当本地或远程服务器上的目录名称包含空格时,通过 ssh 进行 rsync
关于旧版本 rsync 的说明
如果您使用的是旧版本的 rsync,请尝试以下语法:
rsync -av user @ server2: 'dir1/file1 dir2/file2' / path / to / dest rsync 用户@ macbook.local:: 'modname/dir1/file1 modname/dir2/file2' / path / to / here / dest
也可以看看:
- BASH Shell:For 循环带空格的文件名
- 手册页 rsync