我想知道最快的方法是什么
在我的本地计算机上我有一个文件/some/long/path/name
当我通过 SSH 连接到另一台机器时,我决定将本地文件放入 /remote/long/dir/
然后我打开一个新 shell,将文件 scp 到主目录,切换回第一个 shell 并将文件从主目录 mv 到当前目录。
由于制表符补全等功能,我发现这种方法更容易。
是否有一个“技巧”可以让 scp 使用连接到它的计算机的文件显示在远程?
我猜示例语法将是(在远程机器上运行)
scp host:/tabbed/complete/file file
或者如果我中途做出决定,我是否总是需要第二个连接?
我连接的计算机没有外部的直接端口访问
答案1
这些是在 LAN 上,对吗?您可以使用SSHFS在本地机器上挂载远程目录。
创建挂载点
sudo mkdir -p /mnt/remotehost
sudo chmod 777 /mnt/remotehost
挂载远程共享
sshfs user@remotehost:/home/user /mnt/remotehost
使用远程共享
ls /mnt/remotehost
cp /mnt/remotehost/Documents/*.odt ~/Documents/
卸载远程共享
fusermount -u /mnt/remotehost
请记住,这比直接scp
查看文件要慢得多,但如果您每次都必须手动检查,从长远来看可能会更快。这也为您提供了使用图形文件管理器的优势(速度很慢,尤其是当它开始创建缩略图时)。
答案2
来自评论,感谢n.st对于这个。
保存公钥
ssh-copy-id user@remotehost
配置 bash
- 安装 bash-completion 包
或者
配置 zsh
- 安装 zsh 包
zsh
- 继续主菜单1
- 配置新的完成系统2
- 运行配置工具(compinstall)2
- 写入~/.zshrcEnter
- 继续Enter
- 继续Enter
- 保存并退出0
- 保存新设置y
- 设置可立即使用的新样式y
- 辞职,不做其他事q
scp 带远程制表符补全
scp user@remotehost:/
Tab