欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[NIO.2] 第十九篇 软链接与硬链接

程序员文章站 2022-04-28 17:28:51
...
对于 Unix 用户(特别是管理员)来说,要非常熟悉链接的概念。链接分为两种:软链接(符号链接)和硬链接。如果你是 Windows 用户,可能对链接不是很熟悉,但是 Windows 系统却完全支持它们,尤其是软链接,在 Windows 中通常叫做快捷方式。
NIO.2 同时支持这两种链接,每个 Path 类的方法都能判断当前文件是否为链接,并且按你的要求做相应的处理。

链接简介

当你只通过文件名就能得到文件,而不需要经过层层目录的时候,那么这个文件就被称为链接。链接分为软链接(符号链接)和硬链接。当一个文件的两个名字具有相同的权重,并且在索引节点表(inode table,在 Linux 中,文件并非直接放在目录中;而是分配了节点索引,用于 Linux 定位)中指向相同的硬盘数据,那么就称为硬链接。当一个文件存在一个主文件和一个额外的入口文件,这个入口文件中存有指回主文件的引用,那么就称为软链接。软链接比硬链接更为灵活,因此使用也更为广泛。下面看看这两种链接的主要异同:

  •     只能为文件创建硬链接,不能为目录创建硬链接;而软链接即可为文件创建,也可以为目录创建。
  •     硬链接不能跨文件系统存在;软链接可以跨文件系统存在。
  •     硬链接的目标文件必须存在;软连接的目标文件可以不存在。
  •     删除硬链接指向的目标文件并不会删除硬链接自身,并且硬链接依旧可以提供底层文件的内容;删除软链接指向的目标文件并不会删除软链接自身,但是删除了目标文件之后,软链接也就变成了一个无效的链接文件。
  •     删除硬链接或软链接,并不会影响目标文件。
  •     硬链接和目标文件是相同的实体,所有属性都完全一样;软链接则不相同。
  •     硬链接的行为和一个普通文件完全一样,因此硬链接很难被找到;软链接的目标文件可以不存在,因此软链接使用起来更为灵活。


文章来源:http://www.aptusource.org/2014/03/nio-2-symbolic-and-hard-links/
相关标签: Java Java NIO.2