小编pur*_*ion的帖子

通过远程 SSH 连接使用 rsync 时在远程路径中转义空格

当使用 SSH 将 rsync 连接到远程服务器时,如何在远程路径中转义空格等?一个简单的反斜杠转义本地 bash 提示符的空间,但在远程机器上,该空间被读取为路径中的中断,从而标记该路径的结尾。

因此,当我这样rsync -avz /path/to/source/some\ dir/ user@host.tld:/path/to/dest/some\ dir/做时,远程服务器正在读取它/path/to/dest/some/,因为它无法远程找到该目标,因为实际目标是“某个目录”而不仅仅是“某个”。

如果我尝试相同的命令并转义反斜杠和空格以通过本地 bash 提示符并维护远程服务器的反斜杠(总共三个反斜杠:)/path/to/dest/some\\\ dir/,它确实将反斜杠发送到远程服务器,但远程服务器然后将路径解释为/path/to/dest/some\/而不是/path/to/dest/some\ dir/仍然剥离空格和它后面的字符。

如果我尝试用引号包裹路径,它的行为方式几乎相同,有效地在空格处切断路径。所以它也只能通过本地 bash 提示。

最初我使用的路径中有一个“ - ”(空格-连字符-空格)段,远程服务器返回一个错误rsync: on remote machine: -: unknown option,这是整个空间转义努力的开始。

那么我必须做些什么才能使远程服务器正常工作,而不必从远程路径中删除空格或其他错误字符(如连字符)?

ssh bash rsync remote path

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

bash ×1

path ×1

remote ×1

rsync ×1

ssh ×1