↩️

『戻る』ボタンを CLI にしてみた — cd の履歴を辿る bd

に公開

bd コマンドとは

Web ブラウザには「戻る」ボタンがあります。
一方で、ターミナルの cd には同じ体験がありません。

ターミナルで戻るというと...

  • cd - は便利ですが、直前のディレクトリにしか戻れません。
  • pushd / popd / dirs はシェルスクリプトで重宝しますが、ディレクトリ移動の普段使いで扱うには大変です。

そこで、cdの移動履歴を辿るCLIツールback-directory(bdコマンド)をつくりました。

bd コマンドでできること

bd は、ディレクトリ移動を「履歴」として扱うツールです。

  • bd:直前に戻る
  • bd ls:直近の移動履歴を一覧表示
  • bd <N>:番号を指定して戻る
  • bd c:直前の bd を取り消す(キャンセル)

インストール方法

導入手順は README にも記載していますが、以下のコマンドでインストールできます。

curl -fsSL https://raw.githubusercontent.com/01-mu/back-directory/main/scripts/install.sh | sh

移動履歴を確認する(bd ls

まずは普段どおり cd で移動します。

$ cd ~/work/project
$ cd frontend
$ cd app
$ cd dashboard
$ pwd
~/work/project/frontend/app/dashboard

ここで bd ls を実行します。

bd ls

出力:

[3] ~/work/project
[2] ~/work/project/frontend
[1] ~/work/project/frontend/app
  • 数字がそのまま「戻れる距離」です
  • 「いまいる場所」から見た 直近の移動履歴 が上に並びます

直前に戻る / 番号で戻る(bd / bd <N>

一覧を見て、戻りたい番号を指定します。

bd 2

これで ~/work/project/frontend に戻れます。
「どこから来たか」を意識せず、戻る操作だけに集中できます。

また、直前に戻りたい場合はbdを使用してください。
bdbd 1 のショートカットです。

実際の利用では、bd lsbd <N> のように一覧から選ぶよりも、
単に bd を繰り返し叩いて戻る場面の方が多くなると考えています。

取り消す(bd c

誤って戻ってしまった場合のキャンセルコマンドです。

bd 3
# あ、戻りすぎた
bd c

bd c は、直前の bd を取り消して、元の場所に戻ります。

まとめ

bd は、ディレクトリ移動を 履歴として扱い、遡れるようにするツールです。

  • bd:直前に戻る
  • bd ls:履歴を見る
  • bd <N>:番号で戻る
  • bd c:直前の bd を取り消す(キャンセル)

「戻る」にフォーカスしてシンプルさを心がけました。
ターミナルでディレクトリを行き来することが多い方には刺さると思います。

Discussion