Em zsh
, geralmente faço:
cd /path/to/somefile(:h)
( h
para head
).
Se somefile
for um link simbólico, você também pode fazer:
cd somefile(:A:h)
Para chegar ao diretório em que o destino do symlink pode ser encontrado.
O zsh
equivalente da solução de Chris 'agora bash
-only seria:
cd() {
[[ ! -e $argv[-1] ]] || [[ -d $argv[-1] ]] || argv[-1]=${argv[-1]%/*}
builtin cd "$@"
}
Em zsh
, você também pode redefinir o que as "palavras" Ctrl-W eliminam.
Em zsh
, "palavras" no contexto dos widgets de movimento / transposição / exclusão baseados em palavras são sequências de alnums mais os caracteres na variável $WORDCHARS
, que por padrão inclui /
.
Você pode remover /
de $WORDCHARS
para que Ctrl-W exclua apenas um componente do caminho:
WORDCHARS=${WORDCHARS/\/}
Outra extensão útil é o widget select-word-style
, que você pode usar para escolher interativamente entre diferentes estilos de palavras.
autoload select-word-style
zle -N select-word-style
bindkey '\ew' select-word-style
Em seguida, pressionar Alt-W permite escolher entre diferentes estilos de palavras.
$ cd /blah/blih<Alt-W>
Word styles (hit return for more detail):
(b)ash (n)ormal (s)hell (w)hitespace (d)efault (q)uit
(B), (N), (S), (W) as above with subword matching
?