意外と知られていない。bashで前のディレクトリに「バック」する一番楽な方法

2017年8月23日

bashを使っていて思わず「cd」って打ってしまうこと、ありますよね。「あっ、せっかく深いディレクトリに移動してたのに、ホームディレクトリに戻ってしまった」ってなったとき、どうしてますか?打ちなおすのも、履歴から探して実行するのも面倒ですよね。そんな時に使えるのが、以下のコマンドです。

cd -

これで、以前いたディレクトリに戻れます。Webブラウザやファイルマネージャーについてる「バック」ボタンみたいなものですね。

ただ、バックボタンと違って、環境変数「$OLDPWD」に入っている「前にいたディレクトリ」に移動します。なので、「cd -」を実行するごとに2つのディレクトリを行ったり来たりすることになります。これを利用して、設定ファイルのあるディレクトリと、ログファイルのあるディレクトリを行き来して作業する、といったこともできます。以下は、「/etc/apache2/」と「/var/log/apache2」を行き来する例です。

[email protected]:/etc/apache2$ cd /var/log/apache2/
[email protected]:/var/log/apache2$ cd -
/etc/apache2
[email protected]:/etc/apache2$ cd -
/var/log/apache2
[email protected]:/var/log/apache2$ cd -
/etc/apache2
[email protected]:/etc/apache2$ 

複数のディレクトリでガッツリ作業するなら、tmuxやscreen、あるいはそれらのラッパーのbyobuを導入して使うほうがいいですが、ちょっとした作業なら「cd -」で行き来するだけで十分な場合も多いでしょう。