In zsh
mache ich oft:
cd /path/to/somefile(:h)
( h
für head
).
Wenn somefile
es sich um einen Symlink handelt, können Sie auch Folgendes tun:
cd somefile(:A:h)
Um zu dem Verzeichnis zu gelangen, in dem sich das Ziel des Symlinks befindet.
Das zsh
Äquivalent zu Chris 'jetzt bash
einziger Lösung wäre:
cd() {
[[ ! -e $argv[-1] ]] || [[ -d $argv[-1] ]] || argv[-1]=${argv[-1]%/*}
builtin cd "$@"
}
In zsh
können Sie auch neu definieren, welche "Wörter" Ctrl-Wentfernt werden.
In zsh
"Wörter" im Kontext der wortbasierten Widgets zum Verschieben / Transponieren / Löschen sind Sequenzen von Alnums plus die Zeichen in der $WORDCHARS
Variablen, die standardmäßig enthalten sind /
.
Sie könnten entfernen /
aus , $WORDCHARS
so dass Ctrl-Wnur löscht eine Pfadkomponente:
WORDCHARS=${WORDCHARS/\/}
Eine weitere nützliche Erweiterung ist das select-word-style
Widget, mit dem Sie interaktiv zwischen verschiedenen Wortstilen wählen können.
autoload select-word-style
zle -N select-word-style
bindkey '\ew' select-word-style
Durch Drücken von Alt-Wkönnen Sie zwischen verschiedenen Wortstilen wählen.
$ 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
?