popdコマンドを実行するのではなく、bash変数にプッシュされたディレクトリを含めるにはどうすればよいですか?
答え1
以前のディレクトリの名前だけを知りたい場合は、次を実行してください。
% echo $OLDPWD
そのディレクトリに入りたい場合は、簡単にできます
% cd -
自動的に次のように変更されます。$OLDPWD
Pushd-popdを使用して完全なディレクトリスタックを作成する場合
% dirs -v
これにより、ディレクトリ名の横にディレクトリインデックスが印刷されます。
次のように入力すると、そのディレクトリに移動できます。
% pushd +N
ここで、Nはディレクトリのインデックスです。
答え2
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")