Linux 链接文件讲解
链接文件是Linux文件系统的一个优势。如需要在系统上维护同一文件的两份或者多份副本,除了保存多份单独的物理文件之外,可以采用保留一份物理文件副本和多个虚拟副本的方式,这种虚拟的副本就成为链接。链接是目录中指向文件真实位置的占位符。在Linux中有两种不同类型的文件链接:
1.符号链接。
2.硬链接
符号连接就是一个真实的文件,他指向存放在虚拟目录结构中的某个地方的另一个文件,这两个通过符号链接在一起的文件,内容并不相同。
可以通过ln -s来创建一个文件的符号链接:
ln -s 目标文件 符号链接名称文件
如下所示: ln -s test.txt ln_s_test.txt test.txt是需要链接指向的源文件,而ln_s_test.txt是符号链接文件,需要创建的文件。
-> 符号代表的是该文件链接到文件 test.txt。
通过上图可以看出,链接文件的inode编号是8,而被链接的源文件的inode是0,inode不同,那么说明本身这两个文件的内容是不一样的,是两个不同的对象。
硬链接:硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置。但从根本上讲是同一个文件。引用硬链接文件等同于引用了源文件。
创建硬链接文件使用ln命令,不需要加任何参数。
如图所示:
给文件code_test创建了一个硬链接文件ln_code_test的命令是ln code_test ln_code_test
其中ln_code_test是硬链接的名称,而code_test是源文件名称。
这两个文件的inode都是0,说明带有硬链接的文件是共享inode编号的,它们最终是指向的一个文件,它们的文件大小也是一样的。
不要给链接文件再创建另一个链接文件,这样会导致逻辑混乱,可以给一个文件创建多个链接文件,这样会更好。