`cd` すべての画面のPWDを現在の画面に

`cd` すべての画面のPWDを現在の画面に

screen4つの開いた画面があるリモートサーバーで実行されているとします。cdすべての画面を現在開いている画面の作業ディレクトリにすばやく移動する方法はありますか?

答え1

回避策は次のとおりです。一方のタブでCWDを一時ファイルに書き込み、もう一方のタブで保存したディレクトリにcdを書き込みます。私の.bashrcまたは.bash_profileに次の2つのエイリアスを追加します。

alias ds='pwd > /tmp/cwd'
alias dr='cd "$(</tmp/cwd)"'

ds(dir save)コマンドはCWDを表示し、dr(dir recall)コマンドはcdを表示します。 Cシェルを使用して同様の操作を実行できます。

答え2

答えは基本的に「いいえ」です。各画面で実行される各プログラムは、独自の作業ディレクトリを持つ別々のプロセスです。他のプロセスの作業ディレクトリは変更できません。プロセスは自分の作業ディレクトリのみを変更できます。

つまり、解決策はカイウ あなたに指摘してください動作します。デフォルトでは、作業ディレクトリをファイルに保存し、各ウィンドウに移動して別のコマンドを実行してそのファイルを読み込み、それに基づいて現在の作業ディレクトリを設定する必要があります。

PROMPT_COMMANDファイルの内容が変更されると、作業ディレクトリを自動的に変更するためにいくつかの醜いトリックを使用できます。bashただし、これは 1 つ以上のコマンドを実行するまで適用されません。

おそらくこの動作を望む理由を提示すると、問題に対する解決策が提供される可能性があります。

関連情報