对于 Unix 用户(特别是管理员)来说,要非常熟悉链接的概念。链接分为两种:软链接(符号链接)和硬链接。如果你是 Windows 用户,可能对链接不是很熟悉,但是 Windows 系统却完全支持它们,尤其是软链接,在 Windows 中通常叫做快捷方式。
NIO.2 同时支持这两种链接,每个 Path 类的方法都能判断当前文件是否为链接,并且按你的要求做相应的处理。
链接简介
当你只通过文件名就能得到文件,而不需要经过层层目录的时候,那么这个文件就被称为链接。链接分为软链接(符号链接)和硬链接。当一个文件的两个名字具有相同的权重,并且在索引节点表(inode table,在 Linux 中,文件并非直接放在目录中;而是分配了节点索引,用于 Linux 定位)中指向相同的硬盘数据,那么就称为硬链接。当一个文件存在一个主文件和一个额外的入口文件,这个入口文件中存有指回主文件的引用,那么就称为软链接。软链接比硬链接更为灵活,因此使用也更为广泛。下面看看这两种链接的主要异同:
- 只能为文件创建硬链接,不能为目录创建硬链接;而软链接即可为文件创建,也可以为目录创建。
- 硬链接不能跨文件系统存在;软链接可以跨文件系统存在。
- 硬链接的目标文件必须存在;软连接的目标文件可以不存在。
- 删除硬链接指向的目标文件并不会删除硬链接自身,并且硬链接依旧可以提供底层文件的内容;删除软链接指向的目标文件并不会删除软链接自身,但是删除了目标文件之后,软链接也就变成了一个无效的链接文件。
- 删除硬链接或软链接,并不会影响目标文件。
- 硬链接和目标文件是相同的实体,所有属性都完全一样;软链接则不相同。
- 硬链接的行为和一个普通文件完全一样,因此硬链接很难被找到;软链接的目标文件可以不存在,因此软链接使用起来更为灵活。
文章来源:
http://www.aptusource.org/2014/03/nio-2-symbolic-and-hard-links/
分享到:
相关推荐
Java I/O, NIO, and NIO.2 is a power-packed book that accelerates your mastery of Java's various I/O APIs. In this book, you'll learn about classic I/O APIs (File, RandomAccessFile, the stream classes ...
NIO的核心在于通道(Channels)和缓冲区(Buffers)的概念,与传统的流(Streams)有所不同。 1. **通道(Channels)**: 通道是NIO中的核心概念之一,它提供了从一个数据源(如文件、套接字)到另一个数据源的...
New I/O (NIO), and NIO.2 categories. You learn what each category offers in terms of its capabilities, and you also learn about concepts such as paths and Direct Memory Access. Chapters 2 through 5 ...
第九章讲解了异步通道API,这是NIO.2中另一个重要的改进。 ### 12. 总结 第十章总结了NIO.2中最重要的知识点。 综上所述,《Pro Java 7 NIO.2》是一本全面深入地介绍了Java 7中NIO.2特性的书籍,对于希望掌握Java...
NIO.2还包含了许多其他的API扩展和改进,例如对符号链接的支持、文件属性访问、文件树遍历、WatchService等。 以上介绍了Java中的三种I/O机制。在实际开发中,它们各有适用场景。例如,Java IO适合进行传统的I/O...
java nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava nio.pdfjava ...
本篇我们将深入探讨NIO.2中的几个关键概念和类,包括`Files`, `Path`, `FileAttributes`, `DirectoryWatcher`以及`FileVisitor`。这些组件极大地增强了Java对操作系统文件系统的访问能力。 首先,`Path`接口是NIO.2...
NIO.2,又称为New I/O 2或Java NIO 2,是在Java 7中引入的进一步扩展,主要增加了文件系统操作的支持,包括异步I/O操作、文件通道、文件锁定以及对符号链接的支持。AsynchronousFileChannel是NIO.2中新增的异步I/O...
`Pro Java 7 NIO.2`这本书由Anghel Leonard著,深入探讨了Java NIO.2 API,这是Java 7引入的进一步扩展,包括: 1. **文件系统API增强**:新增了AsynchronousFileChannel,支持异步文件操作,可以在后台线程中执行...
Java NIO.pdf nio教程 Java NIO.pdf nio教程 java nio
Java NIO(New Input/Output)是Java标准库中提供的一种I/O模型,与传统的BIO( Blocking I/O)相比,NIO具有更好的性能和更高的灵活性。NIO的核心组件包括通道(Channel)、缓冲区(Buffer)和选择器(Selector)。...
This book covers all the important aspects involved in developing NIO.2-based applications. It provides clear instructions for getting the most out of NIO.2 and offers many exercises and case studies ...
Pro Java 7 NIO.2 – PDF Books
`nio.c`可能是指C语言实现的NIO相关代码,这在Java NIO中不太常见,但可能是为了演示底层I/O操作的原理或与Java NIO进行性能比较。在Java中,NIO API通常由Java标准库提供,无需使用C代码。 `java_nio_chm`指的是...
蔚来(NIO.US)新车上市,蔚来可期 蔚来(NIO.US)是一家中国的新能源汽车制造商,专注于生产高性能的电动汽车。 公司的目标是成为中国最大的新能源汽车品牌,并且跻身全球汽车行业的前列。 蔚来2025年目标价45.5...
【java.nio.file库详解】 Java 早期版本的文件I/O操作功能相对有限,存在几个显著问题:不支持现代文件系统特性、API设计复杂且冗长、处理大文件和并发性能不足。为了解决这些问题,Java引入了`java.nio.file`库,...