当我ssh
进入mycomputer
时logincomputer
,我想自动进入当前目录(执行命令cd
的目录) 。特别是:ssh
mycomputer
> cd /tmp/
现在/tmp/
是当前工作目录。
> ssh mycomputer
> cd /tmp
我希望通过 1 个命令自动完成此操作。这可能吗?假设两台计算机上的目录结构完全相同。
答案1
https://stackoverflow.com/questions/626533/how-can-i-ssh-directly-to-a-particular-directory
在 Stack Overflow 上得到解答。
ssh -t xxx.xxx.xxx.xxx "cd /directory_wanted"
你可以将其添加到 shell 脚本中:
ssh -t xxx.xxx.xxx.xxx "cd \$PWD; bash"
答案2
我建议在您的.bashrc
文件中添加以下行:
sshcd() { ssh -t "$@" "cd '$(pwd)'; bash -l"; }
然后你可以使用 ssh 进入远程主机
sshcd mycomputer
传递 ssh 选项也可以按预期工作,例如指定不同的端口:
sshcd mycomputer -p 2222`
分解一下它的工作原理:
sshcd() { \ # Define a function called sshcd
ssh -t \ # ssh and get remote pty although a command is given
"$@" \ # Pass all options from sshcd to ssh
"cd '$(pwd)'; \ # Get the local directory using pwd, cd to it remotely
bash -l"; \ # Then start a login shell on the remote host
}
答案3
正确的做法是:
ssh -t xxx.xxx.xxx.xxx "cd \$PWD; bash"