V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
alvy
V2EX  ›  Linux

路径软链接下创建文件,这个文件跟实际路径下的文件是什么关系?

  •  
  •   alvy · 2017-02-18 00:28:03 +08:00 · 2601 次点击
    这是一个创建于 2624 天前的主题,其中的信息可能已经有所发展或是发生改变。

    对软链接有个疑问
    我对/data/dir/这个路径创建软链接到/home/work/下:

    shell> ln -s /data/dir/ /home/work/
    

    那么/home/work/下就有了dir/这个软链接
    那么我在/home/work/dir/下创建一个文件a.txt,
    /data/dir写也会同步出现同样的文件a.txt, 那么问题来了,这两个路径下的同名文件到底是什么关系?
    我用ll -il查看,发现这两个文件的 inode 是一样的,但是我删除一个的话另外一个也会删除

    第 1 条附言  ·  2017-02-20 09:33:47 +08:00
    ok ,我本来也是这样链接:文件夹软链接下创建的文件,也是真实文件夹下的文件的软链接。 但是我试验了一下:

    但是如果我对一个文件 a 创建了一个软链接 b ,那么 a 和 b 的 inode 是不一样的, a 的大小和 b 的大小也不一样,软链接 b 大概也就几比特,我删除 a , b 还是存在的,只是无效了 .

    但是我说的那种情况,两个文件夹下的文件,大小是一样的, inode 也是一样的,删除一个,另外一个也没有了。
    10 条回复    2017-02-19 11:21:33 +08:00
    gamexg
        1
    gamexg  
       2017-02-18 00:49:53 +08:00 via Android
    这样理解就好了,
    所有的涉及到软连接的操作被系统对文件路径执行了次字符串替换,将
    /home/work/dir/ 替换成了 /data/dir 。
    也就是实际文件只在 /data/dir 保存。
    ryd994
        2
    ryd994  
       2017-02-18 04:36:31 +08:00 via Android
    软链接就是快捷方式,.lnk
    删了原文件链接就坏了,删了链接原文件不影响
    硬链接才是引用计数,两个引用随便删一个都不影响
    kongse
        3
    kongse  
       2017-02-18 07:05:41 +08:00
    1 楼说的对,软链接目录,"软"仅仅是对这个目录来说是软的。你到这个目录下面操作,就跟这个"软"没啥关系了,因为已经(通过软链接)进入到("原")目录里面了,里面全是硬的。
    winterbells
        4
    winterbells  
       2017-02-18 12:11:58 +08:00
    软连接相当于是一卡双(多)号,分主副号
    主号就是源文件(目录),副号就是链接地址=。=
    sunyifei83
        5
    sunyifei83  
       2017-02-18 15:51:58 +08:00
    理解成 win 平台的快捷方式和映射关系
    hosiet
        6
    hosiet  
       2017-02-18 17:51:53 +08:00 via Android
    用英文解释是 symlink ,也就是符号链接,这个比软链接更准确。用 Windows 的习惯来解释的话,这玩意和快捷方式没啥区别
    alvy
        7
    alvy  
    OP
       2017-02-18 23:08:44 +08:00
    @gamexg ok ,我本来也是这么理解,但是如果我对一个文件 a 创建了一个软链接 b ,那么 a 和 b 的 inode 是不一样的, a 的大小和 b 的大小也不一样,软链接 b 大概也就几比特,我删除 a , b 还是存在的,只是无效了
    但是我说的那种情况,两个文件夹下的文件,大小是一样的, inode 也是一样的,删除一个,另外一个也没有了
    hosiet
        8
    hosiet  
       2017-02-19 00:33:42 +08:00 via Android
    文件夹的情况……真实存在的文件夹就一个,你通过含有软链接的路径找到的文件夹中的文件自然只有一个,这时可以按照一楼字符串替换的方法来理解。所以 inode 号自然相同。文件夹的软链接完全不影响其中的文件,只是多了一种获取某文件的途径罢了。
    hackpro
        9
    hackpro  
       2017-02-19 06:26:54 +08:00 via iPhone
    Alias
    SlipStupig
        10
    SlipStupig  
       2017-02-19 11:21:33 +08:00
    文件快捷方式
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   998 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 20:09 · PVG 04:09 · LAX 13:09 · JFK 16:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.