web-dev-qa-db-ja.com

現在のディレクトリにsshとcdを挿入します

sshからmycomputerlogincomputerするとき、cdの現在のディレクトリ(sshコマンドが実行されたディレクトリ)に自動的にmycomputerを入れたいと思います。特に:

> cd /tmp/

/tmp/は現在の作業ディレクトリです。

> ssh mycomputer
> cd /tmp

これを1つのコマンドで自動的に実行したいと思います。これは可能ですか?ディレクトリ構造が両方のコンピュータでまったく同じであると想定します。

6
Alex

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

StackOverflowで回答しました。

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

これをシェルスクリプトに追加できます。

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

6
Kruug

.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
}
1
Fritz

これを行う正しい方法:

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