深い階層へ軽動したい時、cd コマンドを打つのは面倒。たとえ bash のパス補完が効くとしても、手間はかかる。そこで、目的のパスを bash 変数に保存することでこの問題の対処をしている。例えば、このブログ記事の下書きが置いてあるディレクトリーへ移動するには、次のコマンドを使う:
$ cd $blog
.bashrc に書く設定は次の通り:
blog="$HOME/Documents/blog/"
ディレクトリー階層がどんなに深くても、この方法なら一発で辿り着けるので便利。
パスに空白が含まれる場合
時として、パスに空白が含まれる場合がある。自分でそういうパスを作ろうとは思わないけど、他人の git repository を clone したらパスに空白が空いていた、等々何ともしがたい状況はある。そういう時、同じ要領で変数を指定しても cd で失敗する。
$ grep somedir ~/.bashrc somedir="$HOME/Documents/path with space" $ cd $somedir bash: cd: /Users/ataka/Documents/path: No such file or directory
path の中に含まれる空白が引数の区切りとして扱われている。「path with space」というディレクトリー名の最初の「path」しか cd に渡っていない。これを解決する方法は、多少武骨だけれども変数を "" で囲む。
$ cd "$somedir"
これで「path with space」へと移動できた。
あとがき
ディレクトリー移動はコマンドライン操作の基本。ここで楽できると、随分ストレスが減る。もし良ければ試してみて欲しい。
No comments:
Post a Comment