文件间的链接

目录

inode的概念及其作用

硬链接(Hard Link)

什么是硬链接?

如何创建一个硬链接?

软链接(Symbolic Link)

什么是软链接?

如何创建一个软链接?

软硬链接对比

结语


inode的概念及其作用

索引节点是 Linux 文件系统中的秘密工作者,它们存储文件或目录的元数据,存储了有关文件的各种信息,如权限、所有者、文件大小、时间戳等。每个文件都对应一个唯一的索引节点,这个节点在文件系统中有一个唯一的索引号(inode number)。索引节点可以被看作是文件的“管理者”,它记录了文件的所有关键信息,而文件名则只是指向这个索引节点的一种方式。

里面记录着如下信息 :

文件的访问权限(read、write、execute)
该文件的所有者与所属组(owner、group)
该文件的大小(size)
该文件的创建或内容修改时间(ctime)
该文件的最后一次访问时间(atime)
该文件的修改时间(mtime)
文件的特殊权限(SUID、SGID、SBIT)
该文件的真实数据地址(point)。

在Linux中我们可以用ls -li命令查看当前目录下的文件的inode。

也可以用stat命令查看某个文件的inode信息。

在 Linux 系统中 ,inode 号才是文件的唯一标识而非文件名。文件名只是为了方便人们的记忆和适用。

硬链接(Hard Link)

什么是硬链接?

可以将它理解为一个 “指向原始文件 inode 的指针”,系统不为它分配独立的 inode 和 文件。所以,硬链接文件与原始文件其实是同一个文件,只是名字不同。我们每添加一个硬链接,该文件的 innode 连接数就会增加 1 ; 而且只有当该文件的 inode 连接数为 0 时,才算彻底被将它删除。因此即便删除原始文件,依然可以通过硬链接文件来访问。需要注意的是,我们不能跨分区对文件进行链接。

简单来说,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为硬链接(hard link)。 

如何创建一个硬链接?

我们可以使用ln命令创建一个指向现有文件的新硬链接(另一个名称)。该命令至少需要两个参数,即现有文件的路径以及要创建的硬链接的路径。

例如将/tmp目录中为现有文件newfile.txt创建一个硬链接newfile-hlink2.txt。

ln newfile.txt /tmp/newfile-hlink2.txt

不难发现,在创建完成之后两文件都变为数字2,其代表对应文件的硬链接数。

软链接(Symbolic Link)

什么是软链接?

文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的软链接(soft link)或者符号链接(symbolic link),类似于Windows中的快捷方式,所以若原文件删了,那么软链接就失效了。

如何创建一个软链接?

ln -s /home/kiosk/newfile /tmp/newfile-symlink

注意:要使用绝对路径来创建不然系统有可能会找不到对应的文件。

在使用ls -l命令显示文件和目录信息时,第一个字符代表文件类型,若显示为 l 那么就是软链接。并且会用箭头指向它所对应的原文件。

软硬链接对比

软链接    硬链接
inode原文件和链接文件是两个不同的文件,它们拥有不同的inode号码原文件和链接文件是同一个的文件,它们共用同一个inode号码
文件属性明确指明是链接文件和原文件的属性一致。因为在本质上硬链接文件和原文件是平等的关系
跨文件系统建立可以不可以
删除原文件对链接文件是否有影响删除原文件后,软链接文件就失效了原文件删除后,链接数会减1,只有链接数减为0时才算真的删除文件

结语

感谢观看,如有错误欢迎指证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值