Linux下的硬链接和软链接

时间:2023-02-07 15:20:30

(Linux下的硬链接和软链接)

一、检查服务器系统版本

[root@node ~]# cat /etc/os-release 
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

二、Linux中硬链接和软链接介绍

Linux文件系统中,有所谓的链接(link),我们可以将其视为文件的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link)。

  • 硬链接是指文件可以有多个名称。

  • 软链接的方式则是产生一个特殊的文件,该文件的内容是指向另一个文件的位置

  • 硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

三、Linux硬链接

1.创建文件

[root@node ~]# mkdir /hon
[root@node ~]# echo "aa-bb-test" > /hon/test.01

2.创建硬链接文件 test.bak

[root@node ~]# ln /hon/test.01 test.bak

3.查看硬链接文件

[root@node ~]# ll test.bak 
-rw-r--r-- 2 root root 11 Nov  4 10:22 test.bak
[root@node ~]# ll /hon/test.01 
-rw-r--r-- 2 root root 11 Nov  4 10:22 /hon/test.01

4.查看文件内容

[root@node ~]# cat /hon/test.01 
aa-bb-test
[root@node ~]# cat test.bak 
aa-bb-test

5.查看文件inode号

[root@node ~]# ls -i /hon/test.01 
118529032 /hon/test.01
[root@node ~]# ls -i test.bak 
118529032 test.bak

四、Linux软链接

1.创建一个测试文件

[root@node ~]# mkdir /ron
[root@node ~]# echo  aa > /ron/aa.txt

2.创建软链接文件

ln -s /ron/aa.txt link.lk

3.查看文件inode号

[root@node ~]# ls -i /ron/aa.txt 
126606482 /ron/aa.txt
[root@node ~]# ls -i link.lk 
28417558 link.lk

4.查看文件内容

[root@node ~]# cat /ron/aa.txt 
aa
[root@node ~]# cat link.lk 
aa


五、测试删除硬链接文件

1.查看原文件属性

[root@node ~]# ll /hon/test.01 
-rw-r--r-- 2 root root 11 Nov  4 10:22 /hon/test.01

2.删除链接文件

[root@node ~]# rm -rf test.bak 

3.再次查看原文件变化

[root@node ~]# ll /hon/test.01 
-rw-r--r-- 1 root root 11 Nov  4 10:22 /hon/test.01

Linux下的硬链接和软链接

六、测试删除软链接文件

1.删除原文件

 rm -rf /ron/aa.txt 

2.测试打开软链接文件

软链接文件已经损坏

[root@node ~]# cat link.lk 
cat: link.lk: No such file or directory