Hack 1. cd コマンド用にベースディレクトリを定義する CDPATH を使用する

何度も特定の親ディレクトリのサブディレクトリへ cd を実行している場合、
その親ディレクトリに対して CDPATH をセットすることができます。
以下に説明するように親ディレクトリを指定せずにサブディレクトリへの cd を実行できます。

[ramesh@dev-db ~]# pwd
/home/ramesh
[ramesh@dev-db ~]# cd mail
-bash: cd: mail: No such file or directory
[Note: これは現在のディレクトリ下に mail ディレクトリがあるかを検索しています]
[ramesh@dev-db ~]# export CDPATH=/etc
[ramesh@dev-db ~]# cd mail
/etc/mail
[Note: これは /etc ディレクトリしたに mail があるかを検索しています。現在のディレクトリの下ではありません。]
[ramesh@dev-db /etc/mail]# pwd
/etc/mail

変更を保存するには、~/.bash_profile に export CDPATH=/etc を追加します。

変数 PATH と同様に、変数 CDPATH には複数のディレクトリを追加することができます。
以下に示すように : (コロン)で区切ります。

export CDPATH=.:~:/etc:/var

このハックは次のような場面で役立ちます:
o Oracle DBA は $ORACLE_HOME の下で動作することが多いです。変数 CDPATH に oracle home をセットすることができます。
o Unix sysadmin は /etc の下で動作することが多いです。変数 CDPATH に /etc をセットすることができます。
o 開発者はプロジェクトディレクトリ /home/projects の下で動作することが多いです。変数 CDPATH に /home/projects をセットすることができます。
o エンドユーザは自身のホームディレクトリのサブディレクトリにアクセスすることが多いです。変数 CDPATH に ~ (ホームディレクトリ) をセットすることができます。