V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DestinedRey
V2EX  ›  macOS

关于软链接 ln -s,链接的是目录,但是怎么打开这个链接?无法用 cd 打开,因为他不是目录啊。

  •  1
     
  •   DestinedRey · 2014-07-30 11:25:31 +08:00 · 22979 次点击
    这是一个创建于 3748 天前的主题,其中的信息可能已经有所发展或是发生改变。
    如题,求解,谢谢。
    第 1 条附言  ·  2014-07-30 16:00:01 +08:00
    file -bash: cd: PAT.soft: No such file or directory
    lrwxr-xr-x 1 DestinedRey staff 3 Jul 30 15:54 PAT.soft -> PAT
    这两种提示,我使用的是绝对路径,而且这个应该没有死循环,因为我加了后缀
    第 2 条附言  ·  2014-07-30 17:02:04 +08:00
    lrwxr-xr-x 1 DestinedRey staff 22 Jul 30 16:56 PAT -> ../../../Dropbox/C/PAT
    已经处理了问题,因为链接他是从当前位置去找你指向的位置,为此做了一个小实验,把“..”来书写地址,果然从当前位置出发去找目录,因为可以指向空连接,所以会提示没有文件,指向自己会提示
    Too many levels of symbolic links,再次非常感谢参与回答的大家。
    13 条回复    2022-03-31 11:57:39 +08:00
    CoX
        1
    CoX  
       2014-07-30 11:29:10 +08:00
    链接是目录就应该能用cd打开吧,ubuntu这样是可以打开的
    Vanson
        2
    Vanson  
       2014-07-30 12:07:36 +08:00
    可以
    popbones
        3
    popbones  
       2014-07-30 12:18:21 +08:00
    可以,因为虽然他不“真的”是目录,但是符号链接对于cd操作是透明的。
    ooonme
        4
    ooonme  
       2014-07-30 12:19:48 +08:00
    osx 上的文件夹连接,是一个叫做替身的东西,其实更想要的是文件夹的硬链接,osx本身是不支持的,通过一个小脚本可以做到,参考 https://github.com/selkhateeb/hardlink,希望能帮助你
    ooonme
        5
    ooonme  
       2014-07-30 12:21:02 +08:00
    v2ex 为什么不加个编辑器...连接地址 https://github.com/selkhateeb/hardlink
    DestinedRey
        6
    DestinedRey  
    OP
       2014-07-30 13:30:11 +08:00
    @popbones -bash: cd: PAT: Too many levels of symbolic links
    请问提示这个是什么意思。。
    sandtears
        7
    sandtears  
       2014-07-30 13:33:57 +08:00
    @DestinedRey
    ln -s 后面的 path 请写绝对路径
    DestinedRey
        8
    DestinedRey  
    OP
       2014-07-30 14:08:37 +08:00
    @ooonme Not found -bash: cd: PAT: Too many levels of symbolic links 请问这个是怎么回事。。
    dorentus
        9
    dorentus  
       2014-07-30 15:14:03 +08:00
    @ooonme 你这个是目录硬链接,楼主说的是软链接,不是一个东西……

    @DestinedRey 目录的软链接,cd 进不去的话,说明软链接的目标不存在或者你的用户对那个目录没有浏览权限。
    popbones
        10
    popbones  
       2014-07-30 15:50:06 +08:00
    @DestinedRey 估计你的符号链接链的是自己,所以无限循环了。你可以ls -l看一下。
    zy2013
        11
    zy2013  
       2014-07-30 16:03:03 +08:00
    可以打开,应该是建立软连接时目标目录已存在或者路径不对,ln -s /home/www /var/www ,我是参考这个建立的。 建立连接前var目录下www目录不存在。
    popbones
        12
    popbones  
       2014-07-30 16:08:00 +08:00
    @ooonme 你说的替身,也就是Alias,是Finder的功能,和symbolic link不是回事。它相当于Windows下最基本形态的快捷方式文件,既一个文件中记录了目标文件的地址,由文件管理器负责解析,在命令行模式下看只是一个普通的文件而已(以前不行,现在的不知道行不行,很久没用Windows了)。不过替身和软链接在Finder里面图标都是一样的,既左下角有个箭头。

    在Mac,对于终端来说文件替身只是一个普通的文件,是不能够cd的。所以Alias一般都是面向桌面的时候采用,程序和系统一般都用软链接。但是终端时可以处理软硬链接的。

    然后硬链接又是另外一回事了。Mac OS X支持硬链接,不过仅限于文件,目录只能是软链接或替身。

    Finder支持替身、软链接、硬链接;Mac的Terminal支持软链接、硬链接,不支持替身。
    johnwatson5412
        13
    johnwatson5412  
       2022-03-31 11:57:39 +08:00
    @sandtears 就是这个问题。。。 源文件 和 目标文件都要写绝对路径。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2704 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 08:32 · PVG 16:32 · LAX 01:32 · JFK 04:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.