popd/pushd パススタックの削除または消去

popd/pushd パススタックの削除または消去

あまりにも入力した後、フルパスpushdスタックを消去したいと思います。

popdスタックのすべてのアイテムをどのように処理しますか?

popdスタックにいくつがあるかを知る必要はないでしょうか?

bashマニュアルいいえこれをカバーしているようです。

なぜこれを知るべきですか?私はトリッキーでスタックをきれいにします。

答え1

dirs -cあなたが探しているもの。

答え2

スタックをすべて消去するにはそしてスタックの下部から作業ディレクトリを復元するには、次の手順を実行できます。

  • でそのディレクトリを検索しdirs、そのディレクトリに変更してスタックを消去します。

    cd "$(dirs -l -0)" && dirs -c
    

    ここでは、オプションを入力しようとしたときに失敗しないようにフルパスを一覧-l表示し、スタックの一番下で最初の項目を検索します。cd~-0

    @jw013は、パス拡張を避け、コマンドをより強力にすることを提案しました。

    pushd -0 && dirs -c
    
  • または、エラーが発生するまで(ディレクトリスタックが空のときの呼び出し状態ですpopd):popd

    while (( $? == 0 )); do popd; done
    

関連情報