【Linux】软链接与硬链接

两种链接文件


为解决文件的共享使用,Linux 系统引入了两种链接:硬链接 (hard link) 与软链接(又称符号链接,即 soft link 或 symbolic link)。链接为 Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。

Linux 的文件系统


在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都会给它分配一个编号,这个编号被称为索引节点编号号 (Inode Index) 或者 Inode ,它是文件或者目录在一个文件系统中的唯一标识,文件的实际数据放置在数据区域(data block);

Inode 存储着文件重要参数信息,也就是元数据 (metadata),比如创建时间、修改时间、文件大小、属主、归属的用户组、读写权限、数据所在block号等;

所以可以认为一个文件由三部分组成,分别是 文件名、inode 和 data blocks;

通过 文件名 打开文件的步骤为:

filename > inode(meta data) > data blocks(user data)

硬链接


硬链接就是 多个文件名 指向同一 inode,多个文件名共享 同一个 inode 以及 data blocks;

硬链接可以理解为一个文件的引用,不占用实际空间;

硬链接 允许一个文件拥有多个有效路径名,这样用户就可以建立硬链接到重要的文件,以防止“误删”源数据;

防止误删的原理是:删除一个硬链接文件并不影响其他有相同 inode 号的文件,只有当最后一个链接被删除后,此时如果有新数据要存储到磁盘上,被删除的文件的数据块及目录的链接才会被释放,空间被新数据暂用覆盖。

硬链接只能对文件创建;

创建方式:

ln source target

软连接


类似于windows的快捷方式,软链接就是一个有自己独立 inode 和 user data 的文件,保存的是 另一个文件的路径

soft link > inode > data block(file path) > file

软链接可以对目录或者文件或者一个不存在的文件名创建;

创建方式:

# 给 source 创建软链接
ln -s  source  target
# eg:
ln -s ../../../magedu/ZD/2g/login.bat /app/a1/bc/softlink1 

实践


touch block.txt
ln block.txt block_hd
ln block.txt block_hd2
ln -s block.txt block_soft

ll
# 61475851 -rw-r--r-- 3 rdadmin root 0 Jun 15 15:57 block_hd
# 61475851 -rw-r--r-- 3 rdadmin root 0 Jun 15 15:57 block_hd2
# 61473015 lrwxrwxrwx 1 rdadmin root 9 Jun 15 15:59 block_soft -> block.txt
# 61475851 -rw-r--r-- 3 rdadmin root 0 Jun 15 15:57 block.txt

第一列是inode;
第三列的数字是文件的硬链接的数量;
最后一列显示软链接指向的文件;

可以看到 硬链接和源文件的所有属性、内容、大小、inode等都一样,是个纯粹的副本;

而软连接则有自己的inode、元数据、大小、属性;

rm block.txt
ll
# -rw-r--r--  2 rdadmin root    0 Jun 15 15:57 block_hd
# -rw-r--r--  2 rdadmin root    0 Jun 15 15:57 block_hd2
# lrwxrwxrwx  1 rdadmin root    9 Jun 15 15:59 block_soft -> block.txt

删除源文件后,硬链接还在,因为只要源文件上有硬链接,源文件就不会删除;

而软链接则会提示源文件不存在。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值