5

Когда я ssh в mycomputer из logincomputer я хотел бы автоматически cd - диска в текущий каталог (один из которых была выполнена команда ssh на mycomputer Особенно:

> cd /tmp/

Сейчас /tmp/ является текущим рабочим каталогом.

> ssh mycomputer
> cd /tmp

Я хотел бы, чтобы это произошло автоматически с 1 командой. Это возможно? Предположим, что структура каталогов одинакова на обоих компьютерах.

3 ответа3

5

https://stackoverflow.com/questions/626533/how-can-i-ssh-directly-to-a-particular-directory

Ответил на переполнение стека.

ssh -t xxx.xxx.xxx.xxx "cd /directory_wanted"

Вы можете добавить это в скрипт оболочки:

ssh -t xxx.xxx.xxx.xxx "cd \$PWD; bash"

1

Я бы предложил добавить следующую строку в ваш файл .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
}
0

Правильный способ сделать это:

ssh -t xxx.xxx.xxx.xxx "cd \$PWD; bash"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .