rsync 远程路径带有空格,且自动完成功能不起作用

rsync 远程路径带有空格,且自动完成功能不起作用

运行 Ubuntu 22.04

我有一个可以通过 ssh 连接的远程服务器。

ssh remote

因此我可以使用 rsync 复制文件:

rsync remote:text.txt .

rsync当我按下 tab 键时会自动完成 tex 到 test.txt

我有另一个文件“测试文件.txt”,其中包含一个空格,rsync 将自动完成并转义到

rsync remote:test\\\ file.txt

但随后执行失败:

rsync: [sender] link_stat "/home/user/test\ file.txt" failed: No such file or directory (2)
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1865) [Receiver=3.2.7]
rsync: [Receiver] write error: Broken pipe (32)

我该如何修复这个rsync自动完成转义问题?

使用 scp它确实有效:

scp remote:test\\\ file.txt .

答案1

rsyncbash-completion 的较新版本(> 3.2.4)和(较旧)版本存在问题。

https://github.com/scop/bash-completion/pull/910

作为一种解决方法,请使用该--old-args参数。

rsync --old-args remote:test\\\ file.txt

这有效。

比删除路径中的双斜杠容易得多:

rsync --old-args remote:test\ file.txt

也可以。

相关内容