.screenrcのターゲットの代わりにシンボリックリンクソースとしてchdirする方法

.screenrcのターゲットの代わりにシンボリックリンクソースとしてchdirする方法

screenコマンドにシンボリックリンクを渡すchdirときにシンボリックリンクを逆参照しないように指示する方法はありますか?

私のコマンドには.screenrc次のものがあります。

chdir /data/project1
screen -t "project1"
chdir /data/project2
screen -t "project2"

screen起動時に定期的に使用する複数の共通ディレクトリにいくつかの端末をプリロードするというアイデアです。

残念ながら、そこにあるすべては/data私のシステムにシンボリックリンクを持っているので、screen上記のコマンドを使ってロードすると、端末は目的のフォルダに入るために端末にを入力する必要があります。/mnt/remote/server1/long/path/to/project1/data/project1cd /data/project1

私が使用するパスは長く変更される可能性があるため、/dataファイルを別の場所に再配置する場合は、何も変更する必要がないようにショートカットを使用する習慣を入れることをお勧めします。

ターゲットがシンボリックリンクの場合、シンボリックリンクを逆参照せずにそのディレクトリに変更することをscreen知る方法はありますか?chdir

答え1

私はあなたがそこで何が起こっているのか誤解したと思います。

あなたがいるとき

/mnt/remote/server1/long/path/to/project1

シェルとタイプで

cd /data/project1

その後、ディレクトリを変更しません。シェルに表示される内容を変更するだけです。シェルは論理ディレクトリ階層と物理ディレクトリ階層を区別します。screen(その他ほとんどすべて)いいえ。

最も簡単な解決策は、おそらくいくつかのコードを追加することです.bashrc(を使用すると仮定bash)。

test "$PWD" = '/mnt/remote/server1/long/path/to/project1' && cd /data/project1

関連情報