Linux的软硬链接区别与实验

目录

一、软硬链接的概念

二、软硬链接的语法

三、软硬链接的实验对比

四、总结与归纳

一、软硬链接的概念

在Linux的文件系统中,保存在磁盘分区的文件不管是什么类型都会分配给它一个编号,称为索引节点号(Innode Index)

1、硬链接

硬链接指通过索引节点来进行链接,只有文件能建立硬链接,目录不可以,类似于复制多份文件。多个文件名指向同一索引节点是存在的,一般这种链接就是硬连接。

作用:

硬连接的作用类似于复制多份文件备用,这样用户就可以建立硬连接到重要文件,以防止原始文件被误删。如果只删除一个链接并不影响索引节点本身和其他的链接,只有当最后一个链接被删除后,文件的数据块以及目录的链接才会被释放。也就是说如果想要真正删除文件,则需要将源文件以及硬连接文件都被删除。

2、软链接

另外一种软链接也叫符号链接,文件和目录都可以建立软链接,其原理类似于Windows的桌面快捷方式。软链接的符号文件实际上是一个文本文件,其中包含着另一个文件的位置信息,符号文件并不存储复制文件内容。

作用:

删除操作与源文件隔离,用于对重要文件建立连接,然后一系列的打开源文件的操作是针对软链接名称而言的,如果误删除符号文件也不影响,不会误删掉源文件。

命令进行软链接,可以讲链接文件放到/bin目录里面,对长命令进行短名称的软链接,那么可以简化命令长度;可以将软链接放在/bin目录下,那么就不用将软链接对应的源命令路径放到PATH中了。

Linux的软硬链接区别与实验_第1张图片

二、软硬链接的语法

1、创建软硬链接

ln  源文件  链接文件名称  (硬链接)

ln  -s  源文件  链接文件名称  (软链接)

2、删除

rm 选项 文件

例如删除创建的test

rm -rf test\

其中-f 指的是:忽略不存在的文件和参数,从不提示;-r指的是以递归的方式删除目录以及其内容

3、修改软硬连接

ln -snf 新的源文件或目录 链接文件或目录

其中-s 表示建立符号链接代替硬链接;-n 表示如果LINK_NAME是指向目录的符号链接,则将其视为普通文件;-f 表示删除存在的目标文件

例如 ln -snf etc/passwd /test/passwd 将test目录下的passwd文件指向etc目录下的passw文件

三、软硬链接的实验对比

首先我们先创建一个文件file1,创建它的硬链接文件file2,创建它的软连接文件file3,输入ls -i 查看到文件file1的inode节点号为34925620,硬链接文件file2的inode节点号为34925620,软连接文件file3的inode节点号为34925629

Linux的软硬链接区别与实验_第2张图片

看图可知,源文件file1和硬链接文件file2的inode节点号一样都是34925620,软连接的inode节点号为34925629,所以可以知道软连接与源文件和硬链接的节点号是不一致的,而源文件与硬链接节点号一致。

那我们再来给源文件file1输入内容123来查看一下硬链接文件file2和软连接file3的文件内容

Linux的软硬链接区别与实验_第3张图片

其中这个时候内容全是一致的

那么我们删除源文件file1的内容再来查看一下硬链接文件file2和软连接file3的内容情况

Linux的软硬链接区别与实验_第4张图片

由图可知,此时硬链接文件file2内容依旧显示123;软连接文件file2和源文件file1内容显示不出来,提示找不到文件和目录

四、总结与归纳

如上实验总结:

删除符号链接(软链接)file3,对file1,file2没有影响;                                                                      删除硬连接file2,对file1,file3没有影响;                                                                                            删除源文件file1,对硬连接file2没有影响,导致符号链接(软链接)失效;                                    同时删除源文件file1与硬连接file2,整个文件会真正的被删除。

综上:硬连接类似于文件备份复制,软链接类似于Windows的桌面快捷方式。

你可能感兴趣的:(linux)