鉴于
zsh
5 + setopt chase_links
PWD
未设置异常时
[[ "$PWD" == "${${:-.}:A}" ]]
总是如此?
答案 0 :(得分:1)
不,这并非总是如此:
xvii:~> ls -l foo
lrwxrwxrwx 1 vinc17 vinc17 10 2014-07-05 01:12:06 foo -> bar/subdir/
xvii:~> bash
vinc17@xvii:~$ cd foo
vinc17@xvii:~/foo$ pwd
/home/vinc17/foo
vinc17@xvii:~/foo$ zsh -f
xvii% echo $PWD
/home/vinc17/foo
xvii% setopt chase_links
xvii% echo $PWD
/home/vinc17/foo
xvii% echo "${${:-.}:A}"
/home/vinc17/bar/subdir
xvii% pwd
/home/vinc17/bar/subdir
但是如果zsh在没有符号链接段的当前工作目录中启动,那么当前工作目录将永远不会在cd
(或等效)和..
或{之后的符号链接段当前工作目录中的{1}}是不可能的,因为在更改目录时它们已被解析,因此如果目录仍然存在,.
和$PWD
应该是等效的(见下文)。
在上面的示例中,在${${:-.}:A}
之后,zsh将cd .
更新为$PWD
。但是,/home/vinc17/bar/subdir
并不能使两种形式在所有情况下都相同:
cd .