Como mostro o diretório atual real no meu prompt bash, não o symlink

3

Eu uso o valor padrão de PS1 enviado com o Ubuntu:

\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$

que está ok 90% do tempo. No entanto, quando eu cd para um symlink "directory" o nome do symlink, não o valor de pwd -P é usado.

Como posso alterar o \ w para obter o diretório atual real? E ainda exibir com o formato apresentado por \w ou \W ?

    
por Wes Miller 22.05.2013 / 16:23

2 respostas

8

Use $(pwd -P) em vez de \w . Assim:

PS1='\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]$(pwd -P)\[3[00m\]$ '
    
por 22.05.2013 / 16:27
2

Para expandir a resposta do hek2mgl, para tornar seu prompt "automático", use a variável PROMPT_COMMAND :

PROMPT_COMMAND='PS1="\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]$(pwd -P)\[3[00m\]\$ "'

Do manual:

PROMPT_COMMAND

If set, the value is interpreted as a command to execute before the printing of each primary prompt ($PS1).

    
por 22.05.2013 / 17:38