scp (openssh)命令接受相对path作为host:path/ ,它们与主机上的主目录相关。 我想改变默认目录的位置。
例如,我想在.ssh/config创build一个快捷方式的伪主机
Host bar hostName foo ## this directive does not actually exist: DefaultDirectory /home/me/some/path/here
所以我可以写
scp some_file bar:baz
代替
scp some_file foo:some/path/here/baz
这是可能的openssh?
“home”目录由/etc/passwd文件中定义的用户主目录定义。 我不相信任何opensshd参数将覆盖此行为。 您可以更改用户的主目录…但我不认为这是你要找的。
对此的快速解决scheme是在远程服务器上您自己的主目录中创build一个符号链接到您要访问的目录:
ln -s /your/long/path/here/to/webapp1 ~/webapp1
这将允许您快速访问文件夹,如下所示:
scp file foo:webapp1/
并允许将来扩展(多个远程文件夹),并不会破坏其他程序。 我发现这对我的服务器是有帮助的,当我有几个网站运行在同一台服务器上,我需要推送文件给他们(我现在主要使用这个git)。
另一个选项当然是一个小脚本/函数(假设这里是bash):
myscp() { scp ${1%%:*}${SCP_DIR:?/tmp}/${1#*:} }