Linux学习之第七课时--链接(link)文件
- 链接文件
在linux系统中,内核我每一个新创建的文件分配一个inode(索引结点)号,文件属性保存在inode里,在访问文件时,inode被复制到内存里,从而实现文件的快速访问
链接文件简介
链接是一种在共享文件和访问它的用户的若干目录项之间建立联系的方法。Linux系统中包括硬链接和软连接(也被称为符号链接)两种
硬链接
硬链接是一个指针,指向文件inode,系统并不为它重新分配inode,如下图,/root/a和/root/b
文件具有相同的inode。可以使用ln命令来建立硬链接,硬链接节省空间,也是Linux系统整合文件系统的传统方式
硬链接文件有以下两处限制
- 不允许给目录创建硬链接
- 只有在同一文件系统中的文件之间才能创建链接
对硬链接文件进行读写和删除操作时,结果和软连接相同。但是如果删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容,系统把它当成一个普通文件。修改其中一个,与其链接的文件同时被修改
软连接
软连接也叫符号链接,这个文件包含了另一个文件的路径名,如下图所示,/root/a文件指向了/root/b文件。可以是任意文件或目录,可以链接不同文件系统的文件,和Windows下的快捷方式相似。链接文件甚至可以链接不存在的文件,这就产生一般称之为”断链”的问题,链接文件甚至可以循环链接自己
硬链接和软连接的区别
在Linux系统中,硬链接和软连接有以下区别
- 硬链接记录的是目标的inode,软连接记录的是目标的路径
- 软链接就像是快捷方式,而硬链接就像是备份
- 软连接可以跨分区(文件系统)的链接,而硬链接由于inode缘故,只能在本分区(文件系统)中做链接
使用链接文件
以实例的形式在Linux系统下如何创建,使用硬链接文件和软连接文件
使用ln命令可以创建链接文件(包括软连接文件和硬链接文件)
硬链接文件的使用
通过这个例子详细讲解硬链接文件的创建,以及在修改和删除源文件后硬链接文件的变化
创建一个源文件/root/a,文件内容为life
创建/root/a文件的硬链接为/root/b
查看源文件和硬链接文件属性,可以看到这两个文件的大小和其他属性都是一样的链接数有原来的1变为2
可以看到硬链接文件内容和硬链接内容是一样的
使用stat命令查看/root/a和/root/b,其inode都是656256
修改源文件内容,可以看到硬链接文件也跟源文件改变了文件内容
删除源文件,硬链接文件还是存在的,其文件属性的文件链接数现在为1
删除源文件后还是可以看到链接文件内容
软链接文件的使用
通过这个例子详细讲解软链接文件的创建,以及在修改和删除源文件后软链接文件的变化
创建一个源文件/root/a,文件内容为life
创建/root/a文件的软链接为/root/b
查看源文件和软链接文件属性,可以看到软连接文件容量很小,因为它只是一个指向源文件的快捷方式。还可以看到”/root/b ->a”,说明b文件的源文件是a,链接数还是1
查看软连接文件内容它将指向到源文件,从而看到文件内容和源文件一样
使用stat命令查看/root/a和/root/b,其inode是不一样的,分别是656256和710754
修改源文件内容,可以看到软链接文件也跟源文件改变了文件内容
删除源文件,软链接文件还是存在的
由于所指向的源文件以删除,所以不能查看软连接文件的内容