Remove parte do diretório do diretório atual no zsh

1

Digamos que eu cd para /usr/local/bin , mas eu quero mudar meu pwd para /usr/bin , como posso fazer isso com zsh? Eu sei que posso fazer coisas como cd /a/b/ e, em seguida, cd b c para alterar meu pwd para /a/b , mas não consigo descobrir como fazer o que desejo.

    
por ollien 27.05.2017 / 05:33

2 respostas

2

Dada a funcionalidade flexível do cd do zsh, existem pelo menos três maneiras de fazer o que você deseja. Você pode escrever cd /usr/local /usr ou cd local / ou cd local/bin bin . Provavelmente, pode surgir mais soluções.

A sintaxe de

cd em zsh é cd OLD NEW . Este comando corresponde ao seu $PWD com OLD e substitui todas as partes correspondentes por NEW . Você deve ter em mente que cd funciona em relação ao seu diretório atual, portanto, se você escrever cd /usr/local usr em /usr/local/bin , zsh fornecerá um erro, porque não existe esse diretório como /usr/local/bin/usr/bin . Observe sempre as barras.

    
por 27.05.2017 / 06:19
0

Você pode usar o formulário de dois argumentos de cd para substituir uma subseqüência do diretório de trabalho atual. Por exemplo, para remover /local , você pode usar

cd /local ''

Como várias barras não fazem qualquer diferença, você também pode escrever isso como cd /local / (resulta em /usr//bin , então a barra dupla é simplificada para uma única) ou cd local / (também resulta em /usr//bin ).

Outra abordagem é usar a edição de linha de comando. Com as configurações padrão, digite cd $PWD na linha de comando e pressione Tab : a substituição da variável é substituída pelo valor da variável, e você pode editá-la como quiser. Em setopt auto_cd , você não precisa escrever cd primeiro. Se a sua configuração faz com que a Tab não expanda a variável, use qualquer tecla que invoque a função zle expand-or-complete em vez de complete-word .

    
por 28.05.2017 / 03:00