2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

screen のカレントディレクトリをココに変更する

Last updated at Posted at 2020-08-01

screen のカレントディレクトリは chdir で変更する

GNU Screen にはカレントディレクトリがあり、新しいウィンドウを作成した時の初期ディレクトリとして使用されます。screen のカレントディレクトリは chdir コマンド で変更できます。

:chdir /path/to/dir

pwd の結果を chdir に指定することが多い

screen を日常的に使うようになってから chdir コマンド を使うことが増えました。ただし、pwd の結果を chdir に指定することがほとんどです。以下の手順でおこなっていたのですが、頻繁にやるには面倒です。

  1. pwd でカレントディレクトリを表示する
  2. screen でコピーする
  3. chdir まで打つ
  4. screen でペーストする
  5. Enter キーを押す

screen.chdir という関数にまとめた

ということで、上記を行う関数を作成しました。これを .bashrc などに書いておきます。

.bashrc
function screen.chdir
{
    if [[ "${STY:-}" == '' ]]; then
        echo "Not in screen." >&2
    else
        declare -r target="${1:-$(pwd)}"
        screen -S "${STY}" -X chdir "${target}"
    fi
}

シェルで次のように呼び出すだけで、pwd の結果を screen のカレントディレクトリに設定できるようになりました。

$ screen.chdir

screen.chdir の解説

screen-S-X オプションを用いることで、実行中のセッションにコマンドを送ることができます。

$ screen -S SESSION_NAME -X COMMAND

環境変数 STY でソケット名を取得できるので、その値を -S に指定します。

これらを組み合わせることで screen.chdir を実装しました。

2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?