运行 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
rsync
bash-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
也可以。