http://iwebcode.iteye.com/blog/1791017
硬链接
一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。
这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)。
这里顺便说一下目录文件的"链接数"。创建目录时,默认会生成两个目录项:"."和".."。前者的inode号码就是当前目录的inode号码,等同于当前目录的"硬链接";后者的inode号码就是当前目录的父目录的inode号码,等同于父目录的"硬链接"。所以,任何一个目录的"硬链接"总数,总是等于2加上它的子目录总数(含隐藏目录)。
软链接
除了硬链接以外,还有一种特殊情况。
文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。
这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。
inode的特殊作用
由于inode号码与文件名分离,这种机制导致了一些Unix/Linux系统特有的现象。
1. 有时,文件名包含特殊字符,无法正常删除。这时,直接删除inode节点,就能起到删除文件的作用。
2. 移动文件或重命名文件,只是改变文件名,不影响inode号码。
3. 打开一个文件以后,系统就以inode号码来识别这个文件,不再考虑文件名。因此,通常来说,系统无法从inode号码得知文件名。
第3点使得软件更新变得简单,可以在不关闭软件的情况下进行更新,不需要重启。因为系统通过inode号码,识别运行中的文件,不通过文件名。更新的时候,新版文件以同样的文件名,生成一个新的inode,不会影响到运行中的文件。等到下一次运行这个软件的时候,文件名就自动指向新版文件,旧版文件的inode则被回收。
分享到:
相关推荐
当文件被删除时,其实只是释放了inode表中的条目,直到所有硬链接都消失,inode才会被真正回收。而inode的数量在文件系统创建时就已经固定,因此当inode用完时,即使磁盘空间还有剩余,也无法创建新的文件。 总的来...
在Linux操作系统中,...文章《Linux软连接和硬链接》以及相关资料提供了深入的探讨,包括它们的工作原理、创建方法以及使用示例。通过阅读这些材料,你可以更全面地了解如何在Linux环境中有效地利用这两种链接技术。
对于硬链接,多个文件名可以共享同一个iNode,这意味着它们指向相同的数据。 **三、iNode HC的可能特性** “HC”通常代表“High Capacity”或“High Performance”,因此“iNode HC”可能是为了应对大量文件或高...
硬链接和软链接是 Linux 中两种不同的文件链接方式,硬链接通过索引节点来进行连接,而软链接是一种特殊的文件,包含的有另一文件的位置信息。了解硬链接和软链接的区别对 Linux 操作系统的使用和管理非常重要。
在Linux操作系统中,文件管理是核心功能之一,而硬链接和软链接是文件系统中非常重要的概念,它们提供了文件共享和访问的灵活方式。本文主要介绍这两种链接的区别和使用。 首先,每个文件在Linux中都有一个唯一的...
理解 Linux 硬链接与软链接 在 Linux 系统中,存在两种特殊的“文件”:硬链接和软链接。它们都是文件系统中的重要组成部分,具有不同的特点和应用场景。 硬链接是通过文件系统的 inode 产生新档名,而不是产生新...
硬链接文件指向的是 inode,修改其中一个,连接的文件同时被修改。对硬链接文件进行读写和删除操作时,效果和软链接相同。但是,如果删除硬链接文件的源文件,硬链接文件仍然存在,且保留了原有的内容。这时,系统就...
Linux 软连接与硬链接 Linux 操作系统中有两种类型的连接:硬连接(Hard Link)和软连接(Symbolic Link)。这两种连接类型都可以实现文件的共享,但它们的实现机制和应用场景不同。 一、硬连接(Hard Link) 硬...
Linux操作系统中,文件的链接是一种将文件的不同名称关联起来的技术,这种技术分为两种主要类型:硬链接(HardLink)和符号链接(SymbolicLink),也就是我们常说的软链接。通过实际操作演示,可以更直观地理解这两...
硬链接是Linux中的一个特性,允许多个文件名指向同一个iNode。这意味着修改内容会影响所有链接,但删除一个链接并不会影响其他链接对相同内容的访问。硬链接的创建并不创建文件副本,而是共享同一iNode,节省了磁盘...
硬链接是 Unix/Linux 系统的一种特性,允许多个文件名指向同一个 iNode 号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的...
- 链接数:指向该inode的硬链接文件数量。 - 时间戳:ctime(状态改变时间)、atime(最近访问时间)、mtime(最近修改时间)。 - 特殊属性:如SUID(设置用户ID)、SGID(设置组ID)和SBIT( Sticky位)。 - ...
硬链接允许两个或多个文件名指向同一个inode,这意味着删除其中一个硬链接文件不会影响其他链接,同时,对一个硬链接文件的修改会影响到所有链接。硬链接可以通过`ln`命令创建,增加或减少inode的链接计数。 另一...
5. **inode与文件的关系**:一个文件不一定只有一个inode,例如硬链接文件就是通过共享同一个inode来实现的。反过来,一个inode也可以对应多个文件名,这称为软链接或符号链接。 6. **检查和管理inode**:通过...
Linux 中有两种链接:硬链接(Hard Link)和软链接(Soft Link),软链接也称为符号链接(Symbolic Link)。 硬链接 硬链接其实已存在文件的另一个名字,链接与原来的文件并没有什么区别
硬链接是基于Linux系统中的inode(节点)来创建的。在Linux系统中,每个文件都会被分配一个唯一的inode编号,这个inode包含了文件的所有元数据信息,例如文件权限、文件大小、创建时间等。硬链接就是通过这个inode...
例如,通过`ln`命令创建的硬链接文件`hard`和原始文件`myfile`具有相同的inode,它们都可以访问和修改同一文件内容。 软链接(符号链接)则不同,它更像是一个指向另一个文件的路径指示器。软链接有自己的inode号码...
1. 不能跨文件系统:由于硬链接依赖于同一个文件系统的inode机制,因此不能在不同的文件系统之间创建硬链接。 2. 不能链接到目录:如果允许硬链接到目录,可能会导致环状引用,使得删除操作变得复杂,甚至可能导致...