Digamos que eu faça cd, /usr/local/bin
mas 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 c
para 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 /usr
ou cd local /
ou cd local/bin bin
. Provavelmente é possível encontrar mais soluções.
cd
A sintaxe de zsh é cd OLD NEW
. Este comando corresponde $PWD
ao seu OLD
e substitui quaisquer 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
enquanto 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 decd
para 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 $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 sua configuração Tabnão expandir a variável, use qualquer tecla que invoque a função zle expand-or-complete
em vez de complete-word
.