pushd
ingを何度も実行した後、パスのスタック全体をクリアしたいと思います。
スタック内のすべてのアイテムをどのようにpopd
しますか?
スタックに何個あるかを知らなくてもpopd
したいですか?
Bashマニュアルは これをカバーしているようです ではありません。
なぜこれを知る必要があるのですか?私は気難しいし、スタックを一掃する。
dirs -c
はあなたが探しているものです。
両方のスタックを空にするためにandスタックの下部から作業ディレクトリを復元します。
dirs
からそのディレクトリを取得し、そのディレクトリに移動して、スタックをクリアします。
cd "$(dirs -l -0)" && dirs -c
ここの-l
オプションはフルパスをリストします。これにより、cd
を~
に入れようとしても、-0
が最初のエントリを取得しても失敗しないようにします。スタックの底。
@ jw013は、パスの拡張を回避することにより、このコマンドをより堅牢にすることを提案しました:
pushd -0 && dirs -c
または、エラーが発生するまでpopd
(ディレクトリスタックが空の場合のpopd
呼び出しのステータスです):
while (( $? == 0 )); do popd; done