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,所以无法跨文件系统,这一点可以由软链接实现。
时间: 2024-11-25 02:12:02