【问题标题】:Soft symbolic link mac permission denied软符号链接 mac 权限被拒绝
【发布时间】:2018-11-24 21:56:29
【问题描述】:

我已经敲了一个小时头了。 上下文:我决定将我的 dotfiles 放在 repo 中并对它们进行符号链接。 我尝试了符号链接但被拒绝了,所以我决定尝试一个简单的符号链接,但它不起作用。

我创建了一个 testFolder(/Users/myUserName/testFolder):

drwxr-xr-x   3 myUserName  staff   102 24 Nov 16:47 testFolder

里面有一个测试文件:

-rw-r--r--  1 myUserName  staff  53 24 Nov 16:47 test.sh

所以我创建了一个符号链接来使用这个命令测试父文件夹中的符号链接:

myUserName testFolder $ ln -s test.sh ../test.sh

我转到父文件夹并获取此符号链接:

lrwxr-xr-x   1 myUserName  staff     7 24 Nov 16:52 test.sh -> test.sh

由于某些原因,当我尝试编辑它时,我得到 Permission denied。 如果我将它符号链接到同一个文件夹中,我可以编辑它并且不会拒绝任何权限! 有没有人遇到过这种情况?我一定是做错了什么。

谢谢!

【问题讨论】:

    标签: macos permissions symlink


    【解决方案1】:

    啊!找到了答案!您不能将相对链接放在第一个参数中! 您必须将绝对路径放在第一个参数中,如下所示:

    $ ln -s absolute-path-to-source ../test.sh
    

    【讨论】:

    • 您可以使用相对路径,它们的解析方式与您的预期不同。看我的回答。
    【解决方案2】:

    具有相对路径的符号链接是相对于符号链接所在的目录解析的,而不是相对于您创建它们时所在的目录。所以当你运行这个时:

    ln -s test.sh ../test.sh
    

    您正在创建一个符号链接,该符号链接指向一个名为 test.sh 的文件与符号链接在同一目录中,即它本身。你想做的是这样的:

    ln -s testFolder/test.sh ../test.sh
    

    这会在符号链接所在目录下的 testFolder 子目录中创建指向 test.sh 的符号链接。

    【讨论】:

    • 感谢您的回答!
    猜你喜欢
    • 2015-11-20
    • 1970-01-01
    • 2014-01-20
    • 2014-12-17
    • 2016-07-02
    • 2013-05-22
    • 2015-10-19
    • 2020-11-25
    • 1970-01-01
    相关资源
    最近更新 更多