Trong zsh
, tôi thường làm:
cd /path/to/somefile(:h)
( h
cho head
).
Nếu somefile
là một liên kết tượng trưng, bạn cũng có thể làm:
cd somefile(:A:h)
Để đến thư mục nơi có thể tìm thấy mục tiêu của symlink.
Các zsh
tương đương với Chris' bây giờ bash
giải pháp -only sẽ là:
cd() {
[[ ! -e $argv[-1] ]] || [[ -d $argv[-1] ]] || argv[-1]=${argv[-1]%/*}
builtin cd "$@"
}
Trong zsh
, bạn cũng có thể xác định lại những gì "từ" Ctrl-Wloại bỏ.
Trong zsh
, "từ" trong ngữ cảnh của các tiện ích chuyển động / chuyển đổi / xóa dựa trên từ là các chuỗi của alnums cộng với các ký tự trong $WORDCHARS
biến mà theo mặc định bao gồm /
.
Bạn có thể xóa /
từ $WORDCHARS
đó để Ctrl-Wchỉ xóa một thành phần đường dẫn:
WORDCHARS=${WORDCHARS/\/}
Một tiện ích mở rộng hữu ích khác là select-word-style
tiện ích mà bạn có thể sử dụng để lựa chọn tương tác giữa các kiểu từ khác nhau.
autoload select-word-style
zle -N select-word-style
bindkey '\ew' select-word-style
Sau đó nhấn Alt-Wcho phép bạn chọn giữa các kiểu từ khác nhau.
$ 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
?