与Linux文件和目录对应的硬链接和软链接摘要

硬链接
新文件是现有文件的别名,当原始文件被删除时,仍然可以使用新文件。
硬链接特征:
1。具有相同的i节点和相同的存储块可以被视为相同的文件。
2。它可以由i节点标识,并且i节点号是相同的。
三.不能跨分区
4、不能用于目录的使用
5、删除文件,硬链接正常使用


软链接
另一种连接称为符号链接,也称为软连接。软链接文件有一个类似于Windows的快捷方式。它实际上是一个特殊的文档。在符号连接中,文件实际上是包含另一个文件位置信息的文本文件。
软链接特征:
1,类似windows快捷方式
2。软链接有自己的i节点和块快速,但数据块只保存原始文件的文件名和i节点数,并且没有实际的文件数据。
3、lrwxrwxrwx L软链接,软链接文件的权限rwxrwxrwx,但具体到原始文件的权利
4。修改任何文件,另一个更改
5、删除原文件,不能使用软链接。
6。要创建一个软链接,必须编写一个绝对路径。
注意,软链接的文件权限为777,但最终许可活动文件决定L表示软链接文件。
一旦删除源文件,就不会使用软链接(这是硬链接的主要区别)。
注意:在创建软链接时,源文件必须始终使用绝对路径。否则,如果创建的软链接和源文件不在同一目录中,则不会找到源文件(硬链接没有这种情况)。
较少的限制,更灵活,推荐使用。


补充:
有在Linux系统的硬连接两个限制:它不可能跨越文件系统和不允许普通用户进行硬连接到一个目录。对于第一个限制,这是很好理解,第二是不太好理解。L命令任何目录可以看到连接数的LS -至少是2,这也表明了系统的硬连线,并命令ln D还允许用户进行超硬链接目录,它描述了系统的限制,硬连接是一个强制性的目录,而不是逻辑上不允许的或技术上不可行。所以为什么是操作系统的限制可能有两个答案。

首先,如果将硬链接引入目录,可以将循环引入目录中。当遍历目录时,系统将陷入无限循环。也许您会说符号连接不能引入循环,那么为什么不限制目录的符号连接呢原因是,在Linux系统中,每个文件(文件目录)对应一个inode结构、inode数据结构包含的文件类型(普通文件、目录、符号链接文件信息,等),操作系统可以确定在遍历目录的符号链接,你可以判断一个符号链接,当然可以采取一些措施来防止进入大循环,在连续遭遇8符号停止导线连接的系统,这就是为什么目录的符号链接不进入无限循环。但硬连接,因为数据结构和算法在操作系统中,这种死循环是无法阻止的。

在解释第二原因,什么文件的目录项结构看起来像在系统空间先看看他们如何存储在系统空间。dentry结构包含文件名、文件的inode号,一个指向dentry父目录的结构和一些其他无关的讨论是一个指针,这里的关键是,指向父目录的指针;dentry系统结构都是根据存储在哈希表的哈希值,哈希算法是在这里。它是从文件名和文件一起的哈希运算哈希值的父目录dentry结构地址重要。现在假设有两个目录 / / / B B,哪里是 /,我们通过建立在d命令硬连接。dentry dentry结构将这次核空间有 /和 / B,从上面的知识,每个文件或目录下的 / /目录和B都有对应的dentry结构(因为 /目录文件的名称没有改变,但由于对dentry结构有一个指针和计算哈希值都点到父目录时考虑的dentry结构,地址的父目录的目录项结构E是一次),并有继承会影响所有子目录下面的文件,它会浪费很多空间,降低系统的,特别是如果有大量的文件和子目录中的硬连线目录更明显。这可能是原因之二。