(Linux) Bash CDPATH スマートにcdを使う(入力ミスを回避する)

1-3.コマンドライン操作

コマンドラインで作業をしていると、キーを打ち込む心地よさが先立ってしまい、入力ミスによるBackSpace乱打や、そもそも必要のないコマンドの打ち込みをしてしまうことがあります。

特にディレクトリの切り替えで使うcdなどは、乱用しやすいコマンドにあたると思います。

例えば、階層が深いディレクトリで作業する時、ディレクトリの切り替え先がはっきりしていたとしても、

cd aaaa/bbbb/cccc/dddd
と実行せずに、

cd aaaa
cd bbbb
(時にはlsをはさみつつ)

cd cccc/dddd
と、ついやってしまいがちです。

さらに、階層深く入り込んだ後は、
cd ../../../..
と、やたらと長いパス指定子を打ち込んでしまいます。

コマンドライン作業を行うなら、cdをスマートに使いたいものです。
スマートにと言っても、cdの使い方は単純なもので、以下の3通りしかありません。

cd パス
cd –
cd

さらにパスの意味を考慮して以下のように分類することができます。
1. cd 相対パス (相対パス指定)
2. cd 絶対パス (絶対パス指定)
3. cd (ホームディレクトリ指定)
4. cd – (前回ディレクトリ指定)
5. cd ディレクトリ (CDPATHを利用したディレクトリ指定)

上記5種について各シチュエーションでの使い方を考えてみます。

カレントディレクトリが、ホーム(~/)の場合
cd-1

aaaa/ への切り替え
$ cd aaaa (相対パス指定)
TAB補完する場合のキー操作: cd a[TAB][ENTER]
$ cd ~/aaaa (絶対パス指定)
$ cd /home/ユーザ名/aaaa (絶対パス指定)

eeee/ への切り替え
$ cd cccc/dddd/eeee (相対パス指定)
TAB補完する場合のキー操作: cd c[TAB][TAB]e[TAB][ENTER]

カレントディレクトリが、dddd/の場合
cd-2
ホームディレクトリ(~/) への切り替え
$ cd (ホームディレクトリ指定)
cccc/ への切り替え
$ cd .. (相対パス指定)
$ cd ~/cccc (絶対パス指定)
gggg/ への切り替え
$ cd ../gggg (相対パス指定)
TAB補完する場合のキー操作: cd ../g[TAB][ENTER]

切り替え前のディレクトリがdddd/で、カレントディレクトリがffff/の場合
cd-3
dddd/ への切り替え(切り替え前のディレクトリ)
$ cd – (前回ディレクトリ指定)
gggg/ への切り替え
$ cd ../../gggg (相対パス指定)
TAB補完する場合のキー操作: cd ../../g[TAB][ENTER]

CDPATHを利用したディレクトリ切り替え
CDPATHに、ディレクトリのショートカット(path)を設定することで、もっと簡単にディレクトリ移動ができます。
cd-4
CDPATH=cccc/dddd/eeee/を設定しておくことで、ホームディレクトリからffff/へ切り替えする場合は、
cd ffff
だけで済みます。
上記ディレクトリ構成 では、ディレクトリ名の重複がありませんので、すべてのディレクトリのショートカットを登録しておくことで、
すべてのディレクトリへ、

cd ディレクトリ名

だけで切り替えできるようになります。
CDPATHに登録するパス名は以下のように:(コロン)で区切ります。
CDPATH=aaaa:cccc:cccc/dddd:cccc/dddd/eeee:cccc/gggg

シチュエーションによりディレクトリ切り替えの方法はいろいろですが、いずれにしても記憶しやすいディレクトリ命名が必要になるかと思います。

コメント

タイトルとURLをコピーしました