linux查看所有软链接_Linux中的软链接和硬链接

29cbcfa5379e21c668601d0bc2078a32.png

问题出现

问题1:Linux中软链接和硬链接的区别?
问题2:Linux系统内部是通过文件名访问文件的吗?

基础铺垫

平时在Linux系统中,我们都是通过文件名打开文件。但是Linux系统内部并不使用文件名,而是通过inode即节点索引来识别文件。我们通过文件名打开文件,只是表像。实际系统会按照如下去做。

1.系统是先找到这个文件名对应的inode号码,
2.通过inode号码获取inode信息,
3.然后根据inode信息获取文件数据所在的block,读取数据。

很多时候,我们要透过现象找寻问题的本质。

什么是软链接

软链接也叫符号链接(symbolic link),符号链接是指通过创建一个特殊类型的文件来起作用,该文件包含了指向引用文件或目录的文本指针。列举个windows里面的例子就明白了,与windows系统下的快捷方式非常相似。

将内容写进符号链接里,那这些内容也会同样写入引用文件。而当删除一个符号链接的时候,删除的只是符号链接而没有删除文件本身。而如果先删除了文件,该链接依旧存在,却不会指向任何文件。但是你打开该链接,就会报错“NO such file or directory”

软链接的两个文件的inode号码是不一样的

如何创建软链接

1.首先在目录下创建fileB文件,写上i am askcto

[root@ky35z ask]# vi fileB

2.使用命令ln -s item link(item可以是文件也可以是目录)

[root@ky35z ask]# ln -s fileB fileB-sym

3.查看两个文件的inode号码

[root@ky35z ask]# ls -i fileB fileB-sym
1446188 fileB  1446185 fileB-sym

4.查看两个文件内容

[root@ky35z ask]# cat fileB
i am askcto
[root@ky35z ask]# cat fileB-sym 
i am askcto

文件fileB和软链接fileB-sym的inode节点号码不一致。符号链接fileB-sym是包含了指向目标文件的文本指针。

[root@ky35z ask]# ls -l
lrwxrwxrwx 1 root root       5 Jan  7 21:14 fileB-sym -> fileB

什么是硬链接

硬链接,可以想象文件是由两部分组成的,一部分是文件内容,另外一部分是文件名称。创建硬链接时,实际上是创建了额外的名称,这些名称都指向了同一数据部分。系统会分配一系列的盘块给所谓的索引节点(inode),该节点随后与文件名称建立关联。因此,每个硬链接都指向包含文件内容的具体索引节点。

也就是说多个文件指向的是同一个inode号码,用不同的文件名访问,系统内部找到的都是相同的一个inode节点,所以访问的是同样的内容。对文件内容修改,会影响到所有文件名,但是删除一个文件名,不会影响另外一个文件的访问。

如何创建硬链接

1.首先在目录下创建fileA文件,写上i am coder

[root@ky35z ask]# vi fileA

2.使用命令ln file link

[root@ky35z ask]# ln fileA fileA-hard

3.查看两个文件的inode号码

[root@ky35z ask]# ls -i fileA fileA-hard
1446187 fileA  1446187 fileA-hard

4.查看两个文件内容

[root@ky35z ask]# cat fileA
i am coder
[root@ky35z ask]# cat fileA-hard 
i am coder

软链接和硬链接的区别

1.硬链接不能引用自身文件系统之外的文件。也就是说,链接不能引用与该链接不在同一磁盘分区的文件。

2.硬链接不能引用目录。软链接即可以是文件也可以是目录。

3.上面的例子中,软链接fileB-sym是指向文件fileB的文件名,它们的节点号码不同。而硬链接fileA-hard指向的是fileA的节点号码。它们的节点号码相同。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux有两种链接方式:硬链接软链接(也称符号链接)。它们都是将一个文件名与一个文件关联起来的方式,但它们的实现方式略有不同。 1. 硬链接 硬链接是指在一个文件系统,将一个文件的文件名关联到文件的 inode 号上,使得该文件有两个或多个文件名,这些文件名指向同一个文件数据块。硬链接的本质是在文件系统为同一个文件创建了多个文件名,这些文件名共享同一个 inode 号和文件数据块。 硬链接的特点: - 不能跨越文件系统,即硬链接只能在同一个文件系统内使用。 - 可以看做是同一个文件的不同名称,因此对其一个文件进行修改将会影响到所有的硬链接文件。 - 不能对目录进行硬链接。 - 删除其一个文件并不会影响其他硬链接文件,因为硬链接文件之间没有任何关系。 2. 软链接 软链接(也称符号链接)是指在文件系统创建一个特殊的文件,它包含了另一个文件的路径信息。软链接文件可以看做是一个快捷方式,它指向的是另一个文件的路径。 软链接的特点: - 可以跨越文件系统,即软链接可以在不同的文件系统之间使用。 - 可以对目录进行软链接。 - 如果原文件被删除或移动,软链接文件将失效。 - 软链接文件本身可以删除而不会影响原文件。 总的来说,硬链接软链接都是将一个文件名与一个文件相关联的方法,但它们的实现方式不同,使用时需要根据实际需求选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值