《MacTalk•人生元编程》一一1.7 硬链接

本节书摘来自异步社区出版社《MacTalk•人生元编程》一书中的第1章,第1.7节,作者:池建强,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.7 硬链接

基于inode技术,Linux允许多个文件名同时指向一个inode。好处就是,我们可以用不同的文件名去访问同一个文件,每次操作对文件内容的影响会波及所有“副本”,删除掉一个“副本”,不会影响其他文件。增加一个硬链接文件,仅仅是inode里的“Links”属性值加1,删除一个硬链接文件,属性值减1。只有“Links”的值为0时,文件才会被彻底删除,回收其占用的空间。

如何创建一个硬链接文件?非常简单:

ln sourcefile destfile

其中,前者是源文件,后者是目标文件。创建完成后,使用stat命令查看其中之一,就会发现Links的值变为2了,用ls -i查看文件,你会发现这两个文件的inode号是相同的。

如果我们使用Vim在同一个缓冲区(buffer)中打开这两个文件:

vim sourcefile
:new destfile

以上命令会在Vim中打开两个窗口,你在操作其中一个文件时,会发现另一个窗口是同步联动的。

硬链接的应用场景比较广泛,比如多人修改同一个文件、重要文件备份、文件更新、节省磁盘空间等。这些方便的特性都源于inode的设计思想。

注意:我们无法为目录创建硬链接,但是操作系统利用特权偷偷在每个目录下创建了两个硬链接,一个是“.”,另一个是“..”。使用ls -ai命令可以看到这两个硬链接目录和inode号,前者代表当前目录,后者代表当前目录的父级目录。

硬链接不创建inode,所以无法跨文件系统,这一点可以由软链接实现。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值