clones
是一个链接
nrolland at mactoasty in ~
$ la clones
lrwxr-xr-x 1 nrolland staff 11B Oct 5 16:37 clones -> Sync/clones
来自子目录
nrolland at mactoasty in ~/clones/monoidAsComputation/app
$ ls ../../../
列出〜/ Sync
中的所有文件然后列出〜
中的所有文件cd ../../../; ls
如果我尝试将符号链接指向上方的某个位置,虽然我可以cd
进入相对位置
nrolland at mactoasty in ~/clones/monoidAsComputation/app
$ ln -s ../../../.emacs.d/reveal.js
然而这会,因为ln
将clones
符号链接扩展为其定义............
nrolland at mactoasty in ~/clones/monoidAsComputation/app
$ ln -s ../../../../.emacs.d/reveal.js
有没有办法恢复一些理智的引用透明度,或至少在cd
和ln
之间采取相同的行为?
我在macos上使用zsh。我将尝试其他炮弹
答案 0 :(得分:1)
不确定zsh,但以下内容适用于bash
:
要获得与ln
(以及任何其他命令)相同的行为,您可以在cd -P
中使用bash
。在您的示例中,您应该看到:
# nrolland at mactoasty in ~/clones/monoidAsComputation/app
cd -P ../../..; ls
列出~/Sync
中的文件,与ls ../../../
相同。您可以通过别名来使用简单的cd ../../..
获得此行为:
alias cd='cd -P'
有关详细信息,请参阅this answer。