bash: отображение абсолютного пути с символическими ссылками, разрешенными в приглашении

Можно ли в моей оболочке отображать полный текущий рабочий каталог, даже когда я cd в символическую ссылку? Мой текущий PS1 читает

PS1="
[ \w ] 
=> "

Однако, когда я перехожу в связанный каталог, он отображает (например) [ ~/LINKEDDIR ] вместо чего-то более полезного для меня, такого как [ /var/etc/bin/the/actual/path ],

Есть ли способ изменить это?

1 ответ

Решение

Вместо использования \w escape-последовательность, вам придется вызвать pwd утилита напрямую и использовать ее -P возможность полностью развернуть любые символические ссылки. Должно работать следующее (обратите внимание на одинарные кавычки, так что подстановка команды выполняется каждый раз, когда отображается приглашение, а не один раз, когда PS1 определено).

PS1='\n[ $(pwd -P) ]\n=> '
Другие вопросы по тегам