Respondido no estouro de pilha.
ssh -t xxx.xxx.xxx.xxx "cd /directory_wanted"
Você pode adicionar isso em um script de shell:
ssh -t xxx.xxx.xxx.xxx "cd \$PWD; bash"
Quando eu ssh
em mycomputer
de logincomputer
, gostaria de% cd
automaticamente no diretório atual (aquele do qual o comando ssh
foi executado) em mycomputer
. Em particular:
> cd /tmp/
Agora, /tmp/
é o diretório de trabalho atual.
> ssh mycomputer
> cd /tmp
Eu gostaria que isso acontecesse automaticamente com o comando 1. Isso é possível? Suponha que a estrutura do diretório seja exatamente igual nos dois computadores.
Respondido no estouro de pilha.
ssh -t xxx.xxx.xxx.xxx "cd /directory_wanted"
Você pode adicionar isso em um script de shell:
ssh -t xxx.xxx.xxx.xxx "cd \$PWD; bash"
Eu proponho adicionar a seguinte linha ao seu arquivo .bashrc
:
sshcd() { ssh -t "$@" "cd '$(pwd)'; bash -l"; }
Então você pode ssh no host remoto usando
sshcd mycomputer
As opções de passagem ssh também funcionam como esperado, por exemplo, para especificar uma porta diferente:
sshcd mycomputer -p 2222'
Divida como isso funciona:
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
}
A maneira correta de fazer isso:
ssh -t xxx.xxx.xxx.xxx "cd \$PWD; bash"