为了账号安全,请及时绑定邮箱和手机立即绑定

如何在使用ssh登陆虚拟机时跳转到同步的目录下?

如何在使用ssh登陆虚拟机时跳转到同步的目录下?

繁星coding 2019-04-13 08:36:55
简单来讲我遇到了这个问题:tmp='cd'`pwd|cut-c22-`'&&bash'&&ssh-i/my/abstract/path/to/private_keyvagrant@127.0.0.1-p2222-t$tmp这个指令在zsh终端里可以正确执行,但是写成别名就不能正确执行了。v="tmp='cd'`pwd|cut-c22-`'&&bash'&&ssh-i/my/abstract/path/to/private_keyvagrant@127.0.0.1-p2222-t$tmp"如果想了解一下这个命令的来源可以看一下面这一堆话。本地使用vagrant搭建了调试环境。为了方便地进入虚拟机,在主机上配置了如下别名:aliasvbox="ssh-i/my/abstract/path/to/private_keyvagrant@127.0.0.1-p2222"但是懒癌又发作了,我希望可以在已经同步到虚拟机的开发目录的任意子目录下,快速跳到虚拟机对应的目录中。比较绕口,举个例子:配置了主机目录/User/username/my_project/同步到虚拟机的目录/home/vagrant/my_project/。当位于主机的/User/username/my_project/foo/时,希望可以ssh到虚拟机并且直接跳转到/home/vagrant/my_project/foo/目录下。于是几乎不会shell编程的我写出了如下指令:tmp='cd'`pwd|cut-c22-`'&&bash'&&vdouban-t$tmp此处pwd|cut-c22-在我的电脑上可以直接获取到对应的虚拟机下的目录,目前没有想到更灵活的做法。回到刚才的问题,我的别名写法错在哪里?或者有什么更好的方式来解决我的需求?
查看完整描述

2 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

bashaliasvbox='cwd=`pwd|cut-c22-`&&ssh-i/my/abstract/path/to/private_keyvagrant@127.0.0.1-p2222-t"cd$cwd&&/bin/bash"'
                            
查看完整回答
反对 回复 2019-04-13
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

有个不用纠结的方案,既然
tmp='cd'`pwd|cut-c22-`'&&bash'&&ssh-i/my/abstract/path/to/private_keyvagrant@127.0.0.1-p2222-t$tmp
可以正确执行,那么你直接将这个命令写入一个shell脚本好了,放在系统PATH里面,执行脚本和alias是一样的效果。
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 483 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信