ssh 并 cd 进入当前目录

ssh 并 cd 进入当前目录

当我ssh进入mycomputerlogincomputer,我想自动进入当前目录(执行命令cd的目录) 。特别是:sshmycomputer

> 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"

相关内容