Вы еще не можете. Эта функция подходит, скорее всего, в 10.10, и есть сообщение в блоге с запросом пользователей о том, как это должно быть представлено, поэтому, если вам так хочется, вы можете высказать свое мнение здесь.
Если вы используете bash4 (у Ubuntu 9.10 и new есть bash4), самый простой вариант - просто установить переменную PROMPT_DIRTRIM. например:
PROMPT_DIRTRIM=2
Для одного, подобного примеру João Pinto (который будет работать в более старых версиях bash и гарантирует, что компонент пути никогда не превышает 30 символов), вы можете сделать что-то вроде этого:
PS1='[\u@\h:$(p=${PWD/#"$HOME"/~};((${#p}>30))&&echo "${p::10}…${p:(-19)}"||echo "\w")]\$ '
Другой способ решения этой проблемы - включить разрыв строки в PS1, чтобы рабочий каталог и фактическое приглашение отображались в отдельных строках, например:
PS1="\w\n>"
Добавьте это к нижней части вашего ~/.bashrc
split_pwd() {
# Only show ellipses for directory trees -gt 3
# Otherwise use the default pwd as the current \w replacement
if [ $(pwd | grep -o '/' | wc -l) -gt 3 ]; then
pwd | cut -d'/' -f1-3 | xargs -I{} echo {}"/../${PWD##*/}"
else
pwd
fi
}
export PS1="\$(split_pwd) > "
. По общему признанию, это, возможно, было бы более чистым, но я хотел получить трещину.
Ожидаемый результат для более трех слоев.
/home/chris/../Node Projects >
Ожидаемый выход для каталогов с рабочего стола и обратно.
/home/chris/Desktop >
/home/chris >
/home