linux命令建立链接 linux建立连接的命令( 四 )


1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[ root@rekfan.comtest]# ln -s file1 file1soft
[ root@rekfan.comtest]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 48 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft - file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
从上面链接后的结果可以看出来软链接与硬链接,区别不仅仅是在概念上,在实现上也是不同的 。区别:硬链接原文件&链接文件公用一个inode号 , 说明他们是同一个文件 , 而软链接原文件&链接文件拥有不同的inode号,表明他们是两个不同的文件;在文件属性上软链接明确写出了是链接文件 , 而硬链接没有写出来,因为在本质上硬链接文件和原文件是完全平等关系;链接数目是不一样的 , 软链接的链接数目不会增加;文件大小是不一样的 , 硬链接文件显示的大小是跟原文件是一样的,这用强调,因为是等同的嘛,而这里软链接显示的大小与原文件就不同了,file1大小是48B , 而file1soft是5B,这里面的5实际上就是“file1”的大小 。
总之,建立软链接就是建立了一个新文件 。当访问链接文件时,系统就会发现他是个链接文件 , 它读取链接文件找到真正要访问的文件 。
在不同系统之间建立软链接、对目录建立链接,这里就不举例了 , 读者可以自己去尝试,我也是在不断实践中学习的 。
当然软链接也有硬链接没有的缺点,因为链接文件包含有原文件的路径信息,所以当原文件从一个目录下移到其他目录中,再访问链接文件,系统就找不到了~~,而硬链接就没有这个缺陷,你想怎么移就怎么移(呵呵);还有它要系统分配额外的空间用于建立新的索引节点和保存原文件的路径 。
补充一下:可以通过symlink来查看链接文件,可以用 man symlink来学习 。
三、删除链接
有创建就有删除
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
[ root@rekfan.comtest]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491140 lrwxrwxrwx 1 root root 5 07-14 14:24 file1soft - file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[ root@rekfan.comtest]# rm -rf file1soft
[ root@rekfan.comtest]# ls -il
总计 0
1491138 -rw-r–r– 1 root root 0 07-14 14:17 file1
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2
1491139 -rw-r–r– 2 root root 0 07-14 14:17 file2hand
[ root@rekfan.comtest]#
————————————
linux 软连接和硬链接的区别:
————————————
4点不同 :
(1)软连接可以 跨文件系统 ,硬连接不可以。
实践的方法就是用共享文件把windows下的 aa.txt文本文档连接到linux下/root目录 下 bb,cc . ln -s aa.txt
/root/bb 连接成功。ln aa.txt /root/bb 失败。
(2)关于 I节点的问题。硬连接不管有多少个,都指向的是同一个I节点,会把 结点连接数增加  , 只要结点的连接数不是 0 , 文件就一直存在,不管你删除的是
源文件还是 连接的文件。只要有一个存在  , 文件就 存在 (其实也不分什么 源文件连接文件的 ,因为他们指向都是同一个 I节点) 。当你修改源文件或者连接文件
任何一个的时候,其他的 文件都会做同步的修改。软链接不直接使用i节点号作为文件指针,而是使用文件路径名作为指针 。所以 删除连接文件 对源文件无影响,但

推荐阅读