Como definir automaticamente o título do terminal para o nome do diretório sem caminho

10

Atualmente, meu título bash terminal / tab é definido com base no diretório em que estou. Por exemplo:

bob@bobscomputer:~/i/had/some/great/pie/yesterday

Isso não é muito útil se eu tiver várias guias abertas lado a lado. Por exemplo, se eu tiver 4 guias do diretório acima abertas lado a lado, tudo que vejo é

bob@bobscomputer:~/i/had...

4 vezes.

Gostaria que todos os meus títulos de terminal fossem configurados automaticamente para a última parte do caminho. No exemplo acima, gostaria que o título fosse

yesterday

Obviamente, o título deve mudar quando eu mudar de diretório. Gostaria de fazer isso sem alterar meu prompt, portanto, o prompt e o título do terminal devem ser diferentes.

Existe uma maneira de fazer isso?

    
por Staring Frog 01.04.2014 / 22:08

2 respostas

9

Por que você quer fazer isso sem modificar sua variável PS1? Essa é a maneira correta de fazer isso.

Se você executar o seguinte, conseguirá o que deseja:

export PS1="\[\e]0;\W\a\]${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ "

Este é apenas o prompt padrão:

export PS1="\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\]:\[3[01;34m\]\w\[3[00m\]$ "

... e substituindo \u@\h: \w por \W .

Você pode fazer a mesma coisa com qualquer comando que exiba o código de escape correto:

echo -en "\e]0;${PWD##*/}\a"

... mas então você estaria constantemente lutando contra o bash para impedir que isso acontecesse usando o PS1 (o melhor caminho).

    
por Steven K 03.04.2014 / 04:23
2

Sim. Prefira: \[\e]0;\W\a\] ao seu PS1. Isso não alterará a aparência de seus prompts, mas definirá automaticamente o título das guias de terminal como o nome de base do diretório de trabalho atual.

    
por LikeTheRock 18.01.2017 / 19:47