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"