`pushd.`と`cd -`の間の衝突

`pushd.`と`cd -`の間の衝突

cd -前のディレクトリに移動するコマンドを使用してうれしいです。同時に私も好きpushd .ですpopd

ただし、現在の作業ディレクトリを覚えてこれを行う場合は、以前のpushd .ディレクトリに移動すると可能性が失われますcd -。 (pushd .また実行cd .)。

pushdまだどのように使用できますか?cd -

注:GNU bash、バージョン4.1.7(1)

ベストアンサー1

次のように使用できます。

push() { 
    if [ "$1" = . ]; then
        old=$OLDPWD
        current=$PWD
        builtin pushd .
        cd "$old"
        cd "$current"
    else
        builtin pushd "$1"
    fi
}

名前を指定すると、pushd関数は組み込みの前に評価されるため、組み込みよりも優先されます。

上書きすると特別な意味が失われるため、old変数が必要です。currentOLDPWD

おすすめ記事