Experimente este :
PROMPT_COMMAND='PS1X=$(perl -pl0 -e "s|^${HOME}|~|;s|([^/])[^/]*/|$""1/|g" <<<${PWD})'
ou, pura 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}")'
então
PS1='\u@\h ${PS1X} $ '
produz (observe o ~
para ${HOME}
):
rfkrocktk@work-laptop ~/D/P/W/m/s/m/j/c/tkassembled $
Eu melhorei minha resposta graças a @ enzotib