浅谈软链接与硬链接的区别

1.语法格式

软链接:  ln -s 源文件 目标文件
硬链接:  ln 源文件 目标文件 

2.概述

链接:简单说实际上是一种文件共享的方式

软链接:

软链接又叫符号链接,这个文件包含了另一个文件的路径名。可以是任意文件或目录,可以链接不同文件系统的文件。
链接文件甚至可以链接不存在的文件,这就产生一般称之为”断链”的现象,链接文件甚至可以循环链接自己。类似于编程语言中的递归。
软链接文件只是其源文件的一个标记,当删除了源文件后,链接文件不能独立存在,虽然仍保留文件名,但却不能查看软链接文件的内容了。
简单来说,软链接就是一种快捷方式。它和windows下的快捷方式的作用是一样的。

硬链接:

硬链接也称链接,就是一个文件的一个或多个文件名。所谓链接无非是把文件名和计算机文件系统使用的节点号链接起来。
因此我们可以用多个文件名与同一个文件进行链接,这些文件名可以在同一目录或不同目录。一个文件有几个文件名(用ln命令实现多个文件名),
我们就说该文件的链接数为几。由定义可知,此链接数可以是1, 这表明该文件只有一个文件名。
硬链接就是让多个不在或者同在一个目录下的文件名,同时能够修改同一个文件,其中一个修改后,所有与其有硬链接的文件都一起修改了。
简单来说,硬链接就是该文件的一个别名,相当于复制加同步更新。

3.区别

1.软链接与源文件的inode值不同,而硬链接与源文件的inode值相同(共享inode号)
2.若源文件删除了,则该软连接便不可以再访问,而硬连接仍然可以访问。
3.软链接可以跨越磁盘分区,但硬链接不具备这个特性。
[root@foundation66 ~]# mkdir /westos
[root@foundation66 ~]# cd /westos/
[root@foundation66 westos]# touch file1
#制作软链接
[root@foundation66 westos]# ln -s file1 linux1
#软链接文件的大小和创建时间和源文件不同
[root@foundation66 westos]# ll

在这里插入图片描述

#软链接和源文件的inode号不同
[root@foundation66 westos]# ls -i /westos/

在这里插入图片描述

[root@foundation66 ~]# mkdir redhat
[root@foundation66 ~]# cd redhat/
[root@foundation66 redhat]# touch file2
#制作硬链接
[root@foundation66 redhat]# ln file2 linux2
#硬链接文件的大小和创建时间和源文件相同
[root@foundation66 redhat]# ll

在这里插入图片描述

#软链接和源文件的inode号相同
[root@foundation66 redhat]# ls -i /redhat/

在这里插入图片描述
4.拓展

(1).什么是 inode?

理解inode,要从文件储存说起。
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。
这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。
这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

(2).inode的包含哪些内容?

inode包含文件的元数据,具体来说有以下内容:
  * 文件的字节数
  * 文件拥有者的User ID
  * 文件所属组的Group ID
  * 文件的读、写、执行权限
  * 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
  * 链接数,即有多少文件名指向这个inode
  * 文件数据block的位置

猜你喜欢

转载自blog.csdn.net/lilygg/article/details/89212956
今日推荐