変数に入るためにディレクトリがプッシュされました。

変数に入るためにディレクトリがプッシュされました。

popdコマンドを実行するのではなく、bash変数にプッシュされたディレクトリを含めるにはどうすればよいですか?

答え1

以前のディレクトリの名前だけを知りたい場合は、次を実行してください。

% echo $OLDPWD

そのディレクトリに入りたい場合は、簡単にできます

% cd -

自動的に次のように変更されます。$OLDPWD

Pushd-popdを使用して完全なディレクトリスタックを作成する場合

% dirs -v

これにより、ディレクトリ名の横にディレクトリインデックスが印刷されます。

次のように入力すると、そのディレクトリに移動できます。

% pushd +N 

ここで、Nはディレクトリのインデックスです。

答え2

BashにはDIRSTACK配列変数があります:

DIRSTACK
ディレクトリスタックの現在の内容を含む配列変数。ディレクトリは、組み込みディレクトリに示されている順序でスタックに表示されます。

最後にプッシュされたのはindexで"${DIRSTACK[0]}"、2番目にプッシュされたのはindexでした[1]

me@hostname /tmp$ pushd a
/tmp/a /tmp
me@hostname /tmp/a$ pushd /tmp/b
/tmp/b /tmp/a /tmp
me@hostname /tmp/b$ dirs
/tmp/b /tmp/a /tmp
me@hostname /tmp/b$ declare -p DIRSTACK
declare -a DIRSTACK=([0]="/tmp/b" [1]="/tmp/a" [2]="/tmp")

関連情報