对软链接有个疑问
我对/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
gamexg 2017-02-18 00:49:53 +08:00 via Android
这样理解就好了,
所有的涉及到软连接的操作被系统对文件路径执行了次字符串替换,将 /home/work/dir/ 替换成了 /data/dir 。 也就是实际文件只在 /data/dir 保存。 |
2
ryd994 2017-02-18 04:36:31 +08:00 via Android
软链接就是快捷方式,.lnk
删了原文件链接就坏了,删了链接原文件不影响 硬链接才是引用计数,两个引用随便删一个都不影响 |
3
kongse 2017-02-18 07:05:41 +08:00
1 楼说的对,软链接目录,"软"仅仅是对这个目录来说是软的。你到这个目录下面操作,就跟这个"软"没啥关系了,因为已经(通过软链接)进入到("原")目录里面了,里面全是硬的。
|
4
winterbells 2017-02-18 12:11:58 +08:00
软连接相当于是一卡双(多)号,分主副号
主号就是源文件(目录),副号就是链接地址=。= |
5
sunyifei83 2017-02-18 15:51:58 +08:00
理解成 win 平台的快捷方式和映射关系
|
6
hosiet 2017-02-18 17:51:53 +08:00 via Android
用英文解释是 symlink ,也就是符号链接,这个比软链接更准确。用 Windows 的习惯来解释的话,这玩意和快捷方式没啥区别
|
7
alvy OP @gamexg ok ,我本来也是这么理解,但是如果我对一个文件 a 创建了一个软链接 b ,那么 a 和 b 的 inode 是不一样的, a 的大小和 b 的大小也不一样,软链接 b 大概也就几比特,我删除 a , b 还是存在的,只是无效了
但是我说的那种情况,两个文件夹下的文件,大小是一样的, inode 也是一样的,删除一个,另外一个也没有了 |
8
hosiet 2017-02-19 00:33:42 +08:00 via Android
文件夹的情况……真实存在的文件夹就一个,你通过含有软链接的路径找到的文件夹中的文件自然只有一个,这时可以按照一楼字符串替换的方法来理解。所以 inode 号自然相同。文件夹的软链接完全不影响其中的文件,只是多了一种获取某文件的途径罢了。
|
9
hackpro 2017-02-19 06:26:54 +08:00 via iPhone
Alias
|
10
SlipStupig 2017-02-19 11:21:33 +08:00
文件快捷方式
|