Remova parte do diretório do diretório atual em zsh

Remova parte do diretório do diretório atual em zsh

Digamos que eu faça cd, /usr/local/binmas quero mudar meu pwd para /usr/bin, como posso fazer isso com zsh? Eu sei que posso fazer coisas como cd /a/b/e então cd b cpara mudar meu pwd para /a/b, mas não consigo descobrir como fazer o que desejo.

Responder1

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

cdA sintaxe de zsh é cd OLD NEW. Este comando corresponde $PWDao seu OLDe substitui quaisquer partes correspondentes por NEW. Você deve ter em mente que cdfunciona em relação ao seu diretório atual, portanto, se você escrever cd /usr/local usrenquanto estiver em /usr/local/bin, zsh causará um erro, porque não existe um diretório como /usr/local/bin/usr/bin. Sempre observe as barras.

Responder2

Você pode usar oforma de dois argumentos decdpara substituir uma substring do diretório de trabalho atual. Por exemplo, para remover /local, você pode usar

cd /local ''

Como várias barras não fazem 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 $PWDna 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 cdprimeiro. Se sua configuração Tabnão expandir a variável, use qualquer tecla que invoque a função zle expand-or-completeem vez de complete-word.

informação relacionada