コマンドプロンプトに示すようにCWDを切り取る方法

コマンドプロンプトに示すようにCWDを切り取る方法

コンソールで私のCWDが何であるかを確認するために、~/.bash_profileに次のものを追加します.

export PS1='$(pwd)$ '

したがって、pwd結果は$シンボルの前に表示されます。本当に良いです。

しかし、名前が長いディレクトリに入ると、次のようになります。/var/www/vhosts/beta.sitename.co.uk/httpdocs/sites/beta.sitename.co.uk/modules/bundles

コマンドプロンプトに次のように表示されます。

.co.uk/modules/bundles$ sitename.co.uk/httpdocs/sites/beta.sitename.

これにより、シェルがほとんど使用できなくなります。切り取り、最後の部分またはディレクトリ名だけを保持することは可能ですか? 30文字だとしましょう。

pwdcdそれとも、各コマンドの後に印刷して、私がどこにいるのかを知ることができるようにする方が良い考えですか?これはエイリアスを使用して行うことができます。

答え1

私の場合、.bashrcPS1は現在の作業ディレクトリの最後のコンポーネントを表示するように設定されています。これは次の方法\Wで行うことができます(PS1はいくつかの特別なシーケンスと変数を受け入れます)。あなたの場合は次のとおりです。

$ export PS1='\W$'

man bashこれらのシーケンスの詳細は、atで見つけることができますPromptingねえ\wフルパスを使用することもできますが、$HOME短縮されます~(これにより、ほとんどのパスが短縮されます)。文字数の制限を設定したい場合は、次のように使用できます。

$ export PS1='$(pwd | tail -c30)$' # Limited to 30 characters
$ export PS1='...$(pwd | tail -c30)$'

...または少し恥ずかしさを感じる場合もあります。

$ export PS1='${PWD: -30}$'
$ export PS1='${PWD:(-30)}$'
$ export PS1='...${PWD: -30}$'
$ export PS1='...${PWD:(-30)}$'

関連情報