Bash の組み込みコマンド pushd

bash には pushd というコマンドがあります。

pushd コマンドは cd コマンドと同じように ディレクトリを移動することができます。

cd コマンドとの違いは 移動したディレクトリをディレクトリスタックに 積んで(保存して)くれます。 "push directory" なワケです。

ディレクトリスタックの内容は dirs コマンドで見ることができます。 初期状態では、ホームディレクトリが ディレクトリスタックに積まれています。

~:$ dirs
~

実際に使ってみます。 pushd コマンドは、実行後に現在のディレクトリスタックを 表示してくれます。

~:$ pushd /var
/var ~

/var:$ pushd /home
/home /var ~

/home:$

ディレクトリスタックから取り出すには popd コマンドを使います。

/home:$ popd
/var ~

/var:$

このままでも良いのですが 私は function を使って既存の cd コマンドを 置き換えて使用しています。

function cd {
    case $1 in
        "")
            pushd $HOME > /dev/null
            ;;
        "-")
            [ `dirs | wc -w` -gt 1 ] && popd > /dev/null
            ;;
        *)
            [ -d $1 ] && pushd $1 > /dev/null
            ;;
    esac
}

引数を指定しなければホームディレクトリに、ディレクトリを 指定した場合は移動してディレクトリスタックに積みます。 ハイフン "-" を指定した場合はディレクトリスタックから取り出します。

Google サイト内検索

Amazonアソシエイト