シェルプロンプトの現在のディレクトリの略語は何ですか?

シェルプロンプトの現在のディレクトリの略語は何ですか?

vimルートが少し長いときに利用する非常に良い機能があります。

ここに画像の説明を入力してください。

上部タブのドキュメントへのパスを短くします。私のbashプロンプトが次のように見えないように、同様のことを行う方法はありますか?

rfkrocktk@work-laptop ~/Documents/Projects/Work/maventest/src/main/java/com/tkassembled/ $ 

答え1

私はPROMPT_DIRTRIMbashにいるのが好きです...

export PROMPT_DIRTRIM=2

例のプロンプトを次のように変更します。

rfkrocktk@work-laptop ../com/tkassembled/ $

これは私にとって効果的です。

答え2

努力するこれ:

PROMPT_COMMAND='PS1X=$(perl -pl0 -e "s|^${HOME}|~|;s|([^/])[^/]*/|$""1/|g" <<<${PWD})'

または純粋なbash:

PROMPT_COMMAND='PS1X=$(p="${PWD#${HOME}}"; [ "${PWD}" != "${p}" ] && printf "~";IFS=/; for q in ${p:1}; do printf /${q:0:1}; done; printf "${q:1}")'

それから

PS1='\u@\h ${PS1X} $ '

作成します(~for注${HOME})。

rfkrocktk@work-laptop ~/D/P/W/m/s/m/j/c/tkassembled $

答えが改善されました。ありがとうございます。@エンジョチップ

答え3

@nicerobotの答えに似ていますが、少し短いです。

PROMPT_COMMAND='pwd2=$(sed "s:\([^/]\)[^/]*/:\1/:g" <<<$PWD)'
PS1='\u@\h:$pwd2\$ '

これにより、次のサンプル出力が表示されます。

enzotib@acer:/h/enzotib$ cd
enzotib@acer:/h/enzotib$ cd /usr/share/doc/acpid/examples/
enzotib@acer:/u/s/d/a/examples$

答え4

使用している形式はPS1次のとおりです\W(マンページPROMPTINGのセクションを参照bash)。

PS1="\u@\h \W\$ "

他のオプションについて読んでみたいかもしれません。コマンドラインを使用していくつかの素晴らしいタスクを実行できます。

関連情報