linux的硬链接和软链接

简介: 熟悉掌握软硬链接的区别

linux的硬链接和软链接

1.链接的概念:

Linux链接分两种:一种被称为硬链接(Hard Link),另一种被称为软链接也叫符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。

2.硬链接:

在Linux文件系统当中,保存在磁盘中的文件不管是什么类型都会有一个值叫做inode值(索引节点编号),硬链接允许多个文件的inode值相同,一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要文件,以防止“误删”。因为有多个文件指向同一文件,只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,硬链接才彻底消失。

3.硬链接实验:

[root@servera]# touch a1.txt #创建一个测试文件
[root@servera]# ln a1.txt hard.txt #创建a1的一个硬链接文件hard.txt
[root@servera]# ls-li #-i参数显示文件的inode值
total 24
4318232 -rw-------. 1 root root 6947 Apr  4  2019 anaconda-ks.cfg
4318268 -rw-r--r--. 2 root root    7 Jun 26 20:06 a.txt
4318268 -rw-r--r--. 2 root root    7 Jun 26 20:06 hard.txt
4318231 -rw-------. 1 root root 6750 Apr  4  2019 original-ks.cfg

从上面的结果可以看出,硬链接文件hard与原文件a1的inode值相等,均为4318268

[root@servera]# echo "sannet" > a1.txt #向a1写入内容为sannet
[root@servera ~]# cat a1.txt #查看a1文件的内容
sannet
[root@servera ~]# cat hard.txt #查看硬链接hard文件的内容发现是一样的
sannet
[root@servera ~]# rm -f a1.txt #将原文件删除
[root@servera ~]# cat hard.txt #查看硬链接文件内容是否存在-->发现存在
sannet

通过上面的测试可以看出:当删除原文件a1后,硬链接不受影响

硬链接的局限性:

​ 1.硬链接只能用于常规文件

​ 2.不能创建目录或特殊文件的硬链接

[root@servera ~]# ln /etc/ c.txt
ln: /etc/: hard link not allowed for directory

​ 3.硬链接不能跨文件系统

[root@servera ~]# ln hard.txt /mountpoint/a.txt
ln: failed to create hard link '/mountpoint/a.txt' => 'hard.txt': Invalid cross-device link
[root@servera ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  388M     0  388M   0% /dev
tmpfs          tmpfs     411M     0  411M   0% /dev/shm
tmpfs          tmpfs     411M   11M  400M   3% /run
tmpfs          tmpfs     411M     0  411M   0% /sys/fs/cgroup
/dev/vda1      xfs        10G  1.5G  8.6G  15% /
tmpfs          tmpfs      83M     0   83M   0% /run/user/0
/dev/vdb1      ext4      976M  2.6M  907M   1% /mountpoint

4.软链接:

也叫符号链接,有点类型Windows当中的快捷方式。它实际上是一个特殊的文件。在软链接当中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。

5.软链接实验:

[root@servera ~]# touch soft.txt #创建原文件
[root@servera ~]# vim soft.txt
[root@servera ~]# ln -s soft.txt abc.txt #创建软链接
[root@servera ~]# ll -li #查看inode值
total 24
4427926 lrwxrwxrwx. 1 root root    8 Jun 27 00:46 abc.txt -> soft.txt
4318232 -rw-------. 1 root root 6947 Apr  4  2019 anaconda-ks.cfg
4318268 -rw-r--r--. 1 root root    7 Jun 26 12:06 hard.txt
4318231 -rw-------. 1 root root 6750 Apr  4  2019 original-ks.cfg
4195052 -rw-r--r--. 1 root root    7 Jun 27 00:45 soft.txt

从上面的结果可以看出,软链接文件abc.txt与原文件soft.txt的inode值不相等

image.png

这种情况下我们称之为“断链”。

断链:指向缺失文件的软链接

软链接的优点:

​ 1.可以指向目录或特殊文件,而不仅限于常规文件

[root@servera ~]# ln -s /etc/ directory
[root@servera ~]# ll -li
total 16
4318232 -rw-------. 1 root root 6947 Apr  4  2019 anaconda-ks.cfg
4427926 lrwxrwxrwx. 1 root root    5 Jun 27 09:09 directory -> /etc/
4318231 -rw-------. 1 root root 6750 Apr  4  2019 original-ks.cfg

​ 2.可以跨越文件系统

[root@servera ~]# ln -s /abc/c.txt redhat.txt
[root@servera ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
devtmpfs       devtmpfs  388M     0  388M   0% /dev
tmpfs          tmpfs     411M     0  411M   0% /dev/shm
tmpfs          tmpfs     411M   11M  400M   3% /run
tmpfs          tmpfs     411M     0  411M   0% /sys/fs/cgroup
/dev/vda1      xfs        10G  1.5G  8.5G  15% /
tmpfs          tmpfs      83M     0   83M   0% /run/user/0
/dev/vdb1      ext4      976M  2.6M  907M   1% /abc

6.软链接与硬链接的区别:

​ 硬链接只能作用于常规文件 软链接可以作用于常规文件、特殊文件、目录

​ 硬链接不能跨越文件系统 软链接可以跨越文件系统

image.png

相关文章
|
2月前
|
Linux Windows
Linux 软链接与硬链接
创建软链接 软链接是一个指向另一个文件或目录的引用,类似于Windows系统中的快捷方式。 ln -s [目标文件路径] [链接文件名] 例如,要在当前目录下创建一个名为link_file的软链接,指向/home/user/desktop/link,可以执行以下命令 ln -s /home/user/desktop/link link_file 这将创建一个软链接link_file,它实际上是指向/home/user/desktop/link的引用。
35 1
|
7月前
|
Linux 测试技术 索引
软件测试|Linux基础教程:ln命令与软链接和硬链接
软件测试|Linux基础教程:ln命令与软链接和硬链接
64 0
|
28天前
|
Linux 编译器 Windows
Linux软链接使用技巧
Linux软链接使用技巧
16 1
|
2月前
|
存储 算法 Linux
Linux中的硬链接与软链接:原理、应用与最佳实践
Linux中的硬链接与软链接:原理、应用与最佳实践
58 0
|
4月前
|
固态存储 Linux 索引
【Linux】什么是硬链接和软链接?
【1月更文挑战第12天】【Linux】什么是硬链接和软链接?
|
5月前
|
Linux Windows
linux(十七)文件和目录相关命令-软连接、硬链接 ln命令
linux(十七)文件和目录相关命令-软连接、硬链接 ln命令
39 0
|
9月前
|
Linux
轻松管理文件与目录——深入探讨Linux软链接 ln 命令
在Linux系统中,文件和目录的管理是一个重要而常见的任务。为了更灵活地组织文件系统,并实现文件的共享与复用,Linux提供了许多强大的工具。其中,软链接(符号链接)是一种重要的特性,允许您创建一个指向其他文件或目录的链接。在本文中,我们将深入探讨Linux中的软链接,并详细介绍如何使用 ln 命令来创建和管理软链接。
116 0
|
Linux
【Linux】【UOS】为挂载的磁盘创建快捷方式(软链接)
【Linux】【UOS】为挂载的磁盘创建快捷方式(软链接)
190 0
【Linux】【UOS】为挂载的磁盘创建快捷方式(软链接)
|
Linux
Linux系统之硬链接和软链接
Linux系统之硬链接和软链接
134 0
Linux系统之硬链接和软链接
|
Linux Windows
linux中的 ln 软链接、history 查看已经执行过历史命令linux中的> 输出重定向和 >> 追加、时间日期类、date 显示当前时间linux中的tail 输出文件尾部内容linux的rm 删除文件或目录、mv 移动文件与目录或重命名
linux中的 ln 软链接、history 查看已经执行过历史命令linux中的> 输出重定向和 >> 追加、时间日期类、date 显示当前时间linux中的tail 输出文件尾部内容linux的rm 删除文件或目录、mv 移动文件与目录或重命名
linux中的 ln 软链接、history 查看已经执行过历史命令linux中的> 输出重定向和 >> 追加、时间日期类、date 显示当前时间linux中的tail 输出文件尾部内容linux的rm 删除文件或目录、mv 移动文件与目录或重命名