2018年8月30日木曜日

長いディレクトリ名に辟易

Linuxでは標準的にはシェルのプロンプトに
カレントディレクトリがフルパスで表示されることが多いです。
ディレクトリ的に今どこにいるのか一目瞭然なので
便利ではあるのですが、迷惑なことも。
いろいろな事情で長いディレクトリ名が階層深く続いていると、
プロンプトだけで複数行になることはザラで、
何やっているのか意味が分からなくなることがよくあります。
ディレクトリ名を短くできれば解決するのですが、
事情が許さないことも多く、短い名前でシンボリックリンクを作って
そちらでアクセスしたりもしますが、構造上それも難しかったり、
多数のディレクトリがあればリンクを作るのも面倒です。

そこで別の解決策として思いつくのは、
プロンプトのカスタマイズです。
実はプロンプトはPS1環境変数で設定されており、
Ubuntu 14.04ではデフォルトで
PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
と設定されています。もし
$ PS1='$ '
を実行すれば、ユーザ名やフルパスが消えて'$'だけになります。
長いディレクトリ名もかかって来いって感じです。

例えば、"~/p_short"なるシェルスクリプトを
#!/bin/bash
PS1='$ '
の内容で作っておいて、必要な時に
$ source ~/p_short
を実行するなどの応用ができます。
また元に戻したい時用に"~/p_normal"なるシェルスクリプトを
#!/bin/bash
PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
として作っておけば安心です。

ところで一般の方がものすごく長く日本語の混じったファイル名や
ディレクトリ名を作るのはなぜなんでしょうかね?
私はWindowsでも英数文字で簡潔にしています。
だってコマンドシェルで直にタイプすることを前提にしているので。

0 件のコメント:

コメントを投稿