搜索
查看: 2002|回复: 0

Linux中的硬链接与软链接?

  [复制链接]

134

主题

213

帖子

471

积分

中级会员

中国黑客

Rank: 3Rank: 3

积分
471
QQ
发表于 2018-7-19 17:43:13 来自手机 | 显示全部楼层 |阅读模式
硬链接:在一个文件里面,对于目录来说,记录着文件的名字和inode号(inode 是文件元数据的一部分但其并不包含文件名,inode 号即索引节点号,是文件的唯一标识),我们也可以在多个目录里记录相同的inode号,它们的名字不一定相同,但只要inode号一样就行,它们最终都链接到一个文件里,这就是硬链接。也就是说,当文件的硬链接数被目录记录了一次,文件的硬链接数就增加了一次。所以,文件只要在目录里存在,它就至少有一个硬链接。

硬链接
    ln 源  新文件
      一旦创建成功,则没有源和目的文件关系 (硬链接里面不分主次关系)一个文件,只有硬链接为0时才是彻底删除。

[root@Centos6 kobe]# ls
curry  qjc
[root@Centos6 kobe]# ln qjc a
[root@Centos6 kobe]# ln a b
[root@Centos6 kobe]# ls -li
total 0
791533 -rw-r--r--. 3 root root 0 Jul 17 15:28 a
791533 -rw-r--r--. 3 root root 0 Jul 17 15:28 b
791545 -rw-r--r--. 1 root root 0 Jul 17 15:35 curry
791533 -rw-r--r--. 3 root root 0 Jul 17 15:28 qjc
[root@Centos6 kobe]# rm -f b
[root@Centos6 kobe]# ls -li
total 0
791533 -rw-r--r--. 2 root root 0 Jul 17 15:28 a
791545 -rw-r--r--. 1 root root 0 Jul 17 15:35 curry
791533 -rw-r--r--. 2 root root 0 Jul 17 15:28 qjc
[root@Centos6 kobe]# 
 


    硬链接必须在相同的分区下(因为别的分区有自己inode,虽然文件可以在不同的分区下存在,但是inode号一样,并不占用别的分区的inode,只是在目录里加了一个条目,文件还是同一个。)不能跨分区创建
[root@Centos6 kobe]# ln a /boot/qjc
ln: creating hard link `/boot/qjc' => `a': Invalid cross-device link
[root@Centos6 kobe]# 

    硬链接不能对目录创建(因为引入了对目录的硬连接就有可能在目录中引入循环,在目录遍历的时候系统就会陷入无限循环当中,这样导致无法定位到访问目录)
    目录的硬链接数包含目录自身的名字,以及.和子目录里的..
791422 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Downloads
786435 -rw-r--r--. 1 root root 50698 Jul 17  2018 install.log
786436 -rw-r--r--. 1 root root 10031 Jul 17  2018 install.log.syslog
791541 drwxr-xr-x. 2 root root  4096 Jul 17 15:35 kobe
791426 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Music
791427 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Pictures
791424 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Public
791423 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Templates
791428 drwxr-xr-x. 2 root root  4096 Jul 17 14:08 Videos
[root@Centos6 ~]# 

     所以目录的子目录数=(链接数-2)

软连接(符号链接):软连接是一个文件,只不过文件里存放的是别的文件的路径,软连接是一个单独文件,软连接可以通过路径访问源,如果源没了,软连接开始闪烁,找不到源,

软链接创建方式

ln -s 源文件 目的文件
    快捷方式 (wimdows)
    软链接可以跨分区
    可以相对路径 ,也可以绝对路径
    在创建相对路径时,推荐进入到最终目录,再创建
    删除源,软链接不可用
[root@Centos6 kobe]# ln -s curry ali
[root@Centos6 kobe]# ls
a  ali  curry  qjc
[root@Centos6 kobe]# ls -l
total 0
-rw-r--r--. 3 root root 0 Jul 17 15:28 a
lrwxrwxrwx. 1 root root 5 Jul 17 16:21 ali -> curry
-rw-r--r--. 1 root root 0 Jul 17 15:35 curry
-rw-r--r--. 3 root root 0 Jul 17 15:28 qjc
[root@Centos6 kobe]# 

软硬链接的作用:

硬链接:硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。只删除一个连接并不影响节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接:

软链接又称之为符号连接。软链接文件类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

参与人数 1金币 +5 收起 理由
admin + 5 不错!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

温馨提示
1:发帖请遵守《中华人民共和国网络安全法》,发帖内容不得维护国家的、集体的、个人的利益。
2:请勿发布恶意攻击他人的技术文章、工具、和使用教程,发现后删帖处理。
3:本站的目的在于让更多的人了解网络安全,避免受到他人的恶意攻击。
4:本站中的部分文章,可能会出现一些“技术类手段”,但这仅仅为学习演示所用,而非恶意传播技术。
5:本站中的部分文章,可能转载自互联网。如有侵权行为,联系我们删除即可。
6:学习仅是充实头脑,切勿恶意攻击个人、企业等。所造成的法律后果一切由自己承担,本站及其站长概不负责。
我知道了
快速回复 返回顶部 返回列表