用作目录的符号链接

时间:2016-01-17 13:47:12

标签: unix symlink

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

然而这会,因为lnclones符号链接扩展为其定义............

nrolland at mactoasty in ~/clones/monoidAsComputation/app
$ ln -s ../../../../.emacs.d/reveal.js

有没有办法恢复一些理智的引用透明度,或至少在cdln之间采取相同的行为?

我在macos上使用zsh。我将尝试其他炮弹

1 个答案:

答案 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