Eu vi um recurso semelhante no ranger
gerenciador de arquivos e queria em meu prompt de comando, eis como fiz isso.
Eu escrevi uma função bash (principalmente uma regexp perl, coloque-a em seu .bashrc
):
shortpath() {
echo ${@/$HOME/~} | perl -pe 's,(/[^/])[^/]+(?=/),1,g'
}
Você pode usá-lo como:
PS1='$(shortpath "$PWD")$ '
Efeito de exemplo com o $PS1
acima:
~$ cd my/folder/tree/
~/m/f/tree$ cd /opt/Amnesia/core/
/o/A/core$
Para utf-8, você pode usar uma versão mais longa:
shortpath() {
echo ${@/$HOME/~} | perl -pe 'BEGIN{ binmode(STDIN,":utf8"); binmode(STDOUT, ":utf8")} s,(/[^/])[^/]+(?=/),1,g'
}