我有两台机器,笔记本电脑和服务器。他们都/etc/bash_completion
来自.bashrc
.
什么有效:
server$ scp file laptop:~/stage/[tab][tab]
server$ scp laptop:~/stage/[tab][tab] .
server$ rsync -r folder laptop:~/stage/[tab][tab]
什么不起作用
laptop$ scp file server:/data/[tab][tab]
laptop$ scp server:/data/[tab][tab] .
laptop$ rsync -r folder server:/data/[tab][tab]
笔记本电脑运行的是 ubuntu 16.04,服务器运行的是 18.04。
服务器
rsync 版本 3.1.2
scp/ssh 不要使用--version
笔记本电脑
rsync 版本 3.1.1
scp/ssh 不要使用--version
两台机器都有对方的公钥,ssh(以及实际的 rsync/scp 传输)无需密码即可工作。显然,一切都设置为它以一种方式工作,但我无法弄清楚是什么导致它在另一个方向上失败?
我找到了解决方案 -
bash-completion
笔记本电脑上从未安装过软件包。这是一个误导性的问题,因为
.bashrc
文件的来源是正确的,并且不会引发错误。但是该文件从未存在过。bashrc 会检查,但是 /usr/share/bash-completion/bash_completion 确实存在。为什么它不起作用,我不知道。
sudo apt install bash-completion
解决了这个问题。