我对这个 bash 选项感到困惑:
-P
如果设置,则不解决执行 cd 等更改当前目录的命令时的符号链接。而是使用物理目录。默认情况下,Bash 在执行更改当前目录的命令时遵循目录的逻辑链。
For example, if /usr/sys is a symbolic link to /usr/local/sys then: $ cd /usr/sys; echo $PWD /usr/sys $ cd ..; pwd /usr If set -P is on, then: $ cd /usr/sys; echo $PWD /usr/local/sys $ cd ..; pwd /usr/local
我以为决心意味着遵循?例如 /usr/sys 指向 /usr/local/sys,因此它将被解析为 /usr/local/sys。但上面的例子说,当set -P
打开时,/usr/sys 变成/usr/local/says?即使它说如果它打开它不应该解析符号链接
答案1
vm1:/home/millerp > ln -s /var/log ./log
vm1:/home/millerp > set -P
vm1:/home/millerp > cd log
vm1:/var/log > cd
vm1:/home/millerp > set +P
vm1:/home/millerp > cd log
vm1:/home/millerp/log >
使用 -P 时,cwd 不会解析(转换)为链接,它显示为实际(物理)路径。使用+P,cwd 被解析为符号链接路径。
正如穆鲁指出的,问题是“为谁解决?”