Regra de abreviação do diretório atual no prompt do shell

2

Às vezes, vejo que o diretório de trabalho atual no prompt do shell é abreviado e, às vezes, não.

Por exemplo, /usr/bin será exibido como bin$ ou /folder1/folder2 exibido como folder2$ , em outros casos, eu vi /folder1/folder2 exibido como% completo/folder1/folder2$

Estou usando configurações de terminal padrão (estou usando a máquina virtual Fedora 22 para aprender, mas também noto esse fato em vários outros vídeos tutoriais usando uma distribuição diferente)

Existe alguma regra?

    
por Kenny 24.11.2015 / 12:03

3 respostas

5

O que é exibido no prompt principal é decidido pelo conteúdo de a variável PS1 . Aqui está um trecho da documentação do bash:

\w     the current working  directory,  with  $HOME  abbreviated
       with  a tilde (uses the value of the PROMPT_DIRTRIM vari‐
       able)
\W     the basename of the current working directory, with $HOME
       abbreviated with a tilde

Isso significa que, se o seu PS1 usar \w , todo o caminho para o diretório atual será impresso, enquanto \W causaria o outro comportamento observado: apenas o último componente é exibido (com um exceção, em ambos os casos, para o seu diretório home).

O padrão PS1 em algum sistema aleatório baseado em Linux que eu tentei foi [\u@\h \W]\$ , mas isso varia de sistema para sistema.

    
por 24.11.2015 / 16:48
5

Outra maneira de reduzir o caminho, se você usar \w , está com a variável PROMPT_DIRTRIM shell. Uma demonstração:

jackman@b7q9bw1:/usr/local/share/doc $ echo "$PS1"
\u@\h:\w \$ 
jackman@b7q9bw1:/usr/local/share/doc $ pwd
/usr/local/share/doc
jackman@b7q9bw1:/usr/local/share/doc $ PROMPT_DIRTRIM=2
jackman@b7q9bw1:.../share/doc $ pwd
/usr/local/share/doc
jackman@b7q9bw1:.../share/doc $ 
    
por 24.11.2015 / 17:28
1

Isso é uma questão do que está na sua variável PS1. Você pode verificar sua variável PS1 executando echo $PS1 .

Se houver um \w , você verá o caminho completo, se houver um \W , verá apenas a última pasta.

    
por 24.11.2015 / 17:39