Como aparar o CWD, mostrado no comando promt

1

Para saber, qual é o meu CWD no console, adicionei o seguinte ao ~ / .bash_profile:

export PS1='$(pwd)$ '

Portanto, pwd resulta antes do símbolo $ . Foi muito bom.

Mas quando eu vou para um diretório com um nome longo: /var/www/vhosts/beta.sitename.co.uk/httpdocs/sites/beta.sitename.co.uk/modules/bundles

No prompt de comando, vejo:

.co.uk/modules/bundles$ sitename.co.uk/httpdocs/sites/beta.sitename.

Isso torna o shell quase impossível de se trabalhar. É possível cortá-lo, mantendo apenas a última parte ou o nome do dir? Diga, 30 caracteres.

Ou, talvez a melhor idéia seja imprimir o comando pwd após cada cd , para que eu possa saber onde estou? Isso pode ser feito usando um alias.

    
por user4035 04.01.2015 / 14:04

1 resposta

1

No meu .bashrc , meu PS1 está configurado para exibir o último componente do meu diretório de trabalho atual. Isso pode ser feito usando \W (PS1 permite algumas seqüências especiais junto com variáveis). No seu caso, isso seria:

$ export PS1='\W$'

Mais destas sequências podem ser encontradas em man bash , em Prompting , veja aqui . Você também pode usar \w para usar caminhos completos, mas com $HOME abreviado para ~ (o que encurtaria a maioria dos seus caminhos). Agora, se você realmente quiser colocar um limite de caracteres, você pode usar ...

$ export PS1='$(pwd | tail -c30)$' # Limited to 30 characters
$ export PS1='...$(pwd | tail -c30)$'

... ou com um pouco de bashismo:

$ export PS1='${PWD: -30}$'
$ export PS1='${PWD:(-30)}$'
$ export PS1='...${PWD: -30}$'
$ export PS1='...${PWD:(-30)}$'
    
por 04.01.2015 / 14:22

Tags