RHCSA(软链接与硬链接)
1.硬链接
a.原理
硬链接就是指向原始文件的inode指针,如果指针断了,那么就没有联络了
b.查看硬链接
方法1:ls -l 文件名 或者 ll 文件名
[root@jun ~]# ls -l temp
-rw-r--r-- 1 root root 0 7月 16 15:12 temp[root@jun ~]# ll temp #查看文件的硬链接数
-rw-r--r-- 1(硬链接数) root root 0 7月 16 15:12 temp
方法2:stat 文件名
[root@jun ~]# stat temp文件:temp大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:8747084 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2025-07-16 15:12:59.081139353 +0800
最近更改:2025-07-16 15:12:59.081139353 +0800
最近改动:2025-07-16 15:12:59.081139353 +0800
创建时间:2025-07-16 15:12:59.081139353 +0800
c.建立硬链接
格式:
ln -参数 源文件(初始文件) 目标文件(新文件)
例1:建立temp1文件,并且创建硬链接并查看硬链接个数
[root@jun ~]# touch temp1 #新建文件
[root@jun ~]# stat temp1 #查看硬链接数文件:temp1大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:8747084 硬链接:1 #注意!
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2025-07-16 15:19:01.226608283 +0800
最近更改:2025-07-16 15:19:01.226608283 +0800
最近改动:2025-07-16 15:19:01.226608283 +0800
创建时间:2025-07-16 15:19:01.226608283 +0800
[root@jun ~]# ln temp1 temp2 #新建链接,temp2指向temp1所对应的数据
[root@jun ~]# stat temp1 #查看temp1的硬链接数文件:temp1大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:8747084 硬链接:2 #注意!
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2025-07-16 15:19:01.226608283 +0800
最近更改:2025-07-16 15:19:01.226608283 +0800
最近改动:2025-07-16 15:19:15.687336848 +0800
创建时间:2025-07-16 15:19:01.226608283 +0800
[root@jun ~]# stat temp2 #查看temp2的硬链接数文件:temp2大小:0 块:0 IO 块:4096 普通空文件
设备:fd00h/64768d Inode:8747084 硬链接:2
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2025-07-16 15:19:01.226608283 +0800
最近更改:2025-07-16 15:19:01.226608283 +0800
最近改动:2025-07-16 15:19:15.687336848 +0800
创建时间:2025-07-16 15:19:01.226608283 +0800
[root@jun ~]# echo "hello world" > temp1 #把字符串“china”输出到temp1
[root@jun ~]# cat temp1
hello world
[root@jun ~]# cat temp2
hello world
d.硬链接建立后,删除源文件数据依然可以访问,只有硬链接为0时,数据则无法访问
[root@jun ~]# rm -f temp1 #删除一个硬链接
[root@jun ~]# cat temp2 #可以同一另一个连接访问数据
hello world
[root@jun ~]# rm -f temp2 #两个硬链接都删除了
[root@jun ~]# cat temp2 #再次查看temp2文件就没有了
cat: temp2: 没有那个文件或目录
e.硬链接不能个目录建立,因为目录本身自带2个硬链接
[root@jun ~]# mkdir mk1
[root@jun ~]# stat mk1文件:mk1大小:6 块:0 IO 块:4096 目录
设备:fd00h/64768d Inode:19415595 硬链接:2
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2025-07-16 15:31:09.687051939 +0800
最近更改:2025-07-16 15:31:09.687051939 +0800
最近改动:2025-07-16 15:31:09.687051939 +0800
创建时间:2025-07-16 15:31:09.687051939 +0800
[root@jun ~]# ln mk1 mk2
ln: mk1: 不允许将硬链接指向目录
[root@jun ~]# ls -a mk1 #目录本身自带两个硬链接
. ..
注意:
硬链接不能跨分区,例如C盘和D盘不能创建硬链接
不可以在不同的文件系统中建立硬链接,由于inode是当前文件所在本文件系统的索引值即只能在本分区使用,则硬链接不能跨越文件系统
2.软链接
a.原理
软链接本质是一种符号链接,类似于windows的快捷方式,存储对应文件的路径
b.格式
ln -s 源文件 软链接名称
例题:创建软链接并且查看,删除
[root@jun ~]# echo "hello" > t1.txt
[root@jun ~]# cat t1.txt
hello
[root@jun ~]# ln -s t1.txt t2.txt #创建软链接
[root@jun ~]# ll #查看软链接指向关系
总用量 8
drwxr-xr-x. 2 root root 6 7月 5 14:03 公共
drwxr-xr-x. 2 root root 6 7月 5 14:03 模板
drwxr-xr-x. 2 root root 6 7月 5 14:03 视频
drwxr-xr-x. 2 root root 6 7月 5 14:03 图片
drwxr-xr-x. 2 root root 6 7月 5 14:03 文档
drwxr-xr-x. 2 root root 6 7月 5 14:03 下载
drwxr-xr-x. 2 root root 6 7月 5 14:03 音乐
drwxr-xr-x. 2 root root 6 7月 5 14:03 桌面
-rw-------. 1 root root 1337 7月 5 12:01 anaconda-ks.cfg
drwxr-xr-x 2 root root 6 7月 16 15:31 mk1
-rw-r--r-- 1 root root 6 7月 16 15:39 t1.txt
lrwxrwxrwx 1 root root 6 7月 16 15:39 t2.txt -> t1.txt
[root@jun ~]# rm -f t1.txt
[root@jun ~]# cat t2.txt #删除软链接,只要源文件存在则数据依然可以访问
cat: t2.txt: 没有那个文件或目录
注意:软链接数不可以查看,只能通过ll 或者 ls -l 命令查看指向关系
c.修改软链接
格式:
格式:
ln -snf 新文件名 软链接名
例题:创建软链接,并且修改软链接的指向方向
[root@jun ~]# echo "hello china" > te1
[root@jun ~]# ln -s te1 te2
[root@jun ~]# ll
总用量 8
drwxr-xr-x. 2 root root 6 7月 5 14:03 公共
drwxr-xr-x. 2 root root 6 7月 5 14:03 模板
drwxr-xr-x. 2 root root 6 7月 5 14:03 视频
drwxr-xr-x. 2 root root 6 7月 5 14:03 图片
drwxr-xr-x. 2 root root 6 7月 5 14:03 文档
drwxr-xr-x. 2 root root 6 7月 5 14:03 下载
drwxr-xr-x. 2 root root 6 7月 5 14:03 音乐
drwxr-xr-x. 2 root root 6 7月 5 14:03 桌面
-rw-------. 1 root root 1337 7月 5 12:01 anaconda-ks.cfg
drwxr-xr-x 2 root root 6 7月 16 15:31 mk1
lrwxrwxrwx 1 root root 6 7月 16 15:39 t2.txt -> t1.txt
-rw-r--r-- 1 root root 12 7月 16 15:47 te1
lrwxrwxrwx 1 root root 3 7月 16 15:48 te2 -> te1
[root@jun ~]# cat te1 te2
hello china
hello china
[root@jun ~]# ln -snf /etc/NetworkManager/system- connections/ens160.nmconnection te2 #修改指向关系
[root@jun ~]# ll
总用量 8
drwxr-xr-x. 2 root root 6 7月 5 14:03 公共
drwxr-xr-x. 2 root root 6 7月 5 14:03 模板
drwxr-xr-x. 2 root root 6 7月 5 14:03 视频
drwxr-xr-x. 2 root root 6 7月 5 14:03 图片
drwxr-xr-x. 2 root root 6 7月 5 14:03 文档
drwxr-xr-x. 2 root root 6 7月 5 14:03 下载
drwxr-xr-x. 2 root root 6 7月 5 14:03 音乐
drwxr-xr-x. 2 root root 6 7月 5 14:03 桌面
-rw-------. 1 root root 1337 7月 5 12:01 anaconda-ks.cfg
drwxr-xr-x 2 root root 6 7月 16 15:31 mk1
lrwxrwxrwx 1 root root 6 7月 16 15:39 t2.txt -> t1.txt
-rw-r--r-- 1 root root 12 7月 16 15:47 te1
lrwxrwxrwx 1 root root 58 7月 16 15:48 te2 -> /etc/NetworkManager/system-connections/ens160.nmconnection
3.硬链接和软链接的区别
a.硬链接中源文件与链接文件公用一个inode号,是同一个文件
b.软链接中源文件与链接文件拥有不同的inode号,是两个不同的文件
c.软链接的指向关系可以通过命令查看,硬链接不可以查看执行关系,只能查看连接硬链接数
d.文件大小不一样,硬链接文件容量相同是同一个文件,软链接只是一个快捷方式,容量较小
e.软链接可以跨越文件系统分区,任何用户都可以建立指向目录的软链接