Linux 链接

本文详细介绍了Linux系统中硬链接和软链接的概念及其工作原理。通过实例演示了如何创建这两种类型的链接,以及它们在文件删除后的表现差异。此外,还对比了硬链接和软链接在文件属性、占用空间等方面的不同。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

它的功能是为某一个文件在另外一个位置建立一个同步的链接。当我们需要在不同的目录用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录放上该文件,然后在其它的目录下用ln命令链接它就可以,不必重复的占用磁盘空间。无论是硬链接还是软链接,文件都保持同步变化。

硬链接(Hard Link)
硬链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。

软链接(Symbolic Link)
软链接文件和被链接文件可位于不同的文件系统中,能建立指向目录的软链接。

# mkdir /test // 创建test文件夹
# cd /test // 切换到test目录
# touch file1 // 创建file1文件
# touch file2 // 创建file2文件
# ln file1 file1hard // 创建硬链接
# ln -s file2 file2symbolic // 创建软链接

# ls -li // 查看文件
总用量 0
7471106 -rw-r--r-- 2 root root 0 1月   7 16:06 file1
7471106 -rw-r--r-- 2 root root 0 1月   7 16:06 file1hard
7471107 -rw-r--r-- 1 root root 0 1月   7 16:06 file2
7471108 lrwxrwxrwx 1 root root 5 1月   7 16:07 file2symbolic -> file2

# echo "I am file1" >> file1 // 输出信息到file1
# echo "I am file2" >> file2 // 输出信息到file2

# cat file1 // 打印硬链接原文件
I am file1
# cat file1hard // 打印硬链接
I am file1
# cat file2 // 打印软链接原文件
I am file2
# cat file2symbolic // 打印软链接
I am file2

# rm -rf file1 // 删除硬链接原文件
# rm -rf file2 // 删除软链接原文件

# cat file1hard // 打印硬链接
I am file1
# cat file2symbolic // 打印软链接
cat: file2symbolic: No such file or directory

现象:
1.
创建硬链接前file1显示的链接数目为1,创建硬链接后file1与file1hard的链接数目都变为2。
创建软链接后file2与file2symbolic的链接数目没有改变,都为1。
2.
file1与file1hard的编号是一样的,都是7471106。
file2与file2symbolic的编号是不同的。
3.
file1和file1hard显示的文件大小也是一样,都是0B。
file2文件大小为0B而file2symbolic的文件大小为5B。

区别:
1.
硬链接原文件与硬链接文件公用一个编号,表明他们是同一个文件。
软链接原文件与软链接文件拥有不同编号,表明他们不是同一个文件。
2.
硬链接没有写文件属性,因为在本质上硬链接文件和硬链接原文件是完全平等关系。
软链接写明了文件属性,明确写出了是链接文件。
3.
硬链接,以文件副本的形式存在。但不占用实际空间。
软链接,以路径的形式存在,占用空间。
4.
当硬链接原文件删除或改变位置后,硬链接照常使用。
当软链接原文件删除或改变位置后,软链接无法使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值