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

相关文章
|
4月前
|
Linux 索引
在Linux中,符号链接与硬链接有何区别?
在Linux中,符号链接与硬链接有何区别?
|
4月前
|
Linux 索引 Windows
在Linux中,什么是硬链接和软链接?
在Linux中,什么是硬链接和软链接?
|
4月前
|
存储 Linux 索引
在Linux中,软连接和硬链接的区别?
在Linux中,软连接和硬链接的区别?
|
4月前
|
存储 Linux
在Linux中,硬链接和软链接有何区别?
在Linux中,硬链接和软链接有何区别?
|
4月前
|
存储 安全 Linux
在Linux中,硬链接和软链接特点和区别?
在Linux中,硬链接和软链接特点和区别?
|
6月前
|
Linux 数据处理 数据安全/隐私保护
探索Linux命令lchfn:更改文件或目录的硬链接数
在Linux中,`ln`命令用于创建硬链接,而非`lchfn`。硬链接指向文件的inode,多条目共享相同数据。了解硬链接有助于理解文件系统行为。使用`ln 源文件 目标链接名`创建硬链接,`ls -li`查看硬链接数。直接修改硬链接数风险高,应谨慎操作,区别硬链接和软链接,确保数据安全,并常查阅`man ln`。
|
6月前
|
Linux C语言 Windows
Linux技术分享:Linux设置软链接
Linux技术分享:Linux设置软链接
68 2
|
6月前
|
监控 安全 Linux
【权限维持】Linux&OpenSSH&PAM后门&SSH软链接&公私钥登录
【权限维持】Linux&OpenSSH&PAM后门&SSH软链接&公私钥登录
|
6月前
|
Linux vr&ar C语言
【linux】硬链接和软链接
【linux】硬链接和软链接
41 0
|
7月前
|
Linux 编译器 Windows
Linux软链接使用技巧
Linux软链接使用技巧
47 1