`
cnetwei
  • 浏览: 177195 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

NTFS文件系统下的硬链接和软链接

阅读更多

熟悉Linux系统的同学都知道“硬链接”、“软连接”的概念及其方便的使用,其实自Windows2000之后的NTFS3.0版以来,Windows下也能支持这两个概念了。

 

硬链接:

在Windows 2000 及以上版本里可以使用 fsutil hardlink create 这个复杂的命令来创建一个硬链接,用法倒是很简单:

fsutil hardlink create <新文件名> <现有文件名>
 

也可以使用 GNU utilities for Win32 中的 ln 命令来创建,"GNU utilities for Win32 "是一些 GNU 工具在 Win32平台上的移植版本,非常好用 。另外Cygwin 里的 ln 也可以创建 硬链接(但创建符号链接时 会以‘快捷方式’出现)。

 

如果你想在自己程序里创建硬链接,只需要一个很简单的Windows API 函数:

    BOOL CreateHardLink(
      LPCTSTR lpFileName,
      LPCTSTR lpExistingFileName,
      LPSECURITY_ATTRIBUTES lpSecurityAttributes
    );

 

前两个参数的意思就不用解释了,最后一个参数的用途暂时保留,必须为 NULL。

 

 

软连接:

而软连接(symbolic link),NTFS只支持对目录的符号链接,微软把它称作junction,对文件的符号链接,其实Windows平台的解决方案就是——“快捷方式”,不过这与Linux下的 symbolic link不是一个层次上的东西,前者是应用层的功能,后者是底层文件系统的功能。

 

Windows提供了 MOUNTVOL 命令,可以把一个卷链接到另一个卷的目录下,即只能对某个卷的根目录创建 symbolic link。幸运的是我们可以使用 Sysinternals 提供的带有源代码的免费命令行工具 junction.exe 来全功能的完成对 NTFS symbolic link 的管理

 

SysInternals 套件 ,里面包含了大量的实用程序,其中 junction.exe 就是用来管理符号连接的,(更多的关于SysInternals使用工具的信息请参看:http://technet.microsoft.com/zh-cn/sysinternals/bb545046.aspx )。

 

另外,在 Windwos 2000 Resource Kit 里提供了一个命令行工具 linkd.exe 来完成这件事。不过它的查看 symbolic link 信息的功能不如 junction,因为不支持通配符和子目录扫描。

 

以下是junction.exe的简单使用方法:

要创建一个符号连接:

junction 连接名称 要连接哪一个目录

 

例如:

C:\>junction test_www d:\www

Junction v1.05 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2007 Mark Russinovich
Systems Internals - http://www.sysinternals.com

Created: C:\test_www
Targetted at: d:\www

用资源管理器打开 c:\test_www 可以看到和 d:\www 一样的内容。修改一边的文件,另一边的也会同步更新(其实本就没有两份,符号连接就像一个映射)。

 

要删除一个符号连接:

C:\>junction -d c:\test_www

Junction v1.05 - Windows junction creator and reparse point viewer
Copyright (C) 2000-2007 Mark Russinovich
Systems Internals - http://www.sysinternals.com

Deleted c:\test_www.

 

关于符号链接,需要注意的是 ,Explorer 对待 symbolic link 有一个很奇怪的行为。那就是,在 Explorer 里一个 symbolic link 跟被它 link 的目录没有区别,删除这个 symbolic link 将会删除被 link 的目录下的所有文件!

 

分享到:
评论

相关推荐

    NTFS文件解析系统的简单分析

    此外,NTFS支持硬链接和软链接,硬链接允许不同文件名指向同一个MFT条目,而软链接则创建了一个指向其他文件的引用,类似于快捷方式。 在NTFS中,文件的存储是基于簇的,最小分配单位是簇。由于磁盘空间的分配是...

    ntfs文件系统

    8. **硬链接和符号链接**:NTFS支持硬链接(多个文件名指向同一数据块)和符号链接(类似于Unix的软链接),提供了灵活的文件组织方式。 9. **磁盘配额**:管理员可以为NTFS分区设置磁盘配额,限制用户使用的磁盘...

    NTFS文件系统的MFT解析器

    4. **链接解析**:处理硬链接和软链接,理解文件的不同访问路径。 5. **目录结构重建**:根据MFT记录中的信息,构建出完整的目录树结构。 6. **查询支持**:提供一定的查询功能,如按文件名、大小或时间戳查找文件。...

    NTFS Links 1.1.2 创建软链接软件 使用说明

    2. **磁盘格式**:目标磁盘分区必须采用NTFS格式,因为NTFS文件系统支持软链接功能,而FAT32等其他文件系统可能不支持。 ##### 安装步骤 1. **运行安装程序**:双击安装包`NtfsLinksSetup.msi`启动安装向导。 2. **...

    windows四种文件链接方式

    这种链接方式在Linux系统中非常常见,其中硬链接和软链接(符号链接)是常用的两种链接形式。而Windows操作系统同样提供了类似的功能,尽管它的方式和Linux略有不同,但同样有效且实用。 首先,需要明确的是,链接...

    junction.exe可以建立ntfs文件系统的目录映射(符号链接)

    Junction.exe是Windows系统的一个实用程序,由微软开发,主要用于创建和管理NTFS文件系统中的目录 junctions,即一种特殊的符号链接类型。它允许用户将一个目录路径映射到另一个不同的位置,这对于组织和优化磁盘...

    “计算机检测维修与数据恢复”赛项竞赛详解NTFS文件系统.docx

    - **$SYMBOLIC_LINK** 和 **$REPARSE_POINT** 支持符号链接和重解析点,用于软链接和硬链接。 - **$EA_INFORMATION** 和 **$PROPERTY_SET** 存储扩展属性和属性集信息,如NTFS的EFS加密属性。 **重要属性解析:** ...

    文件系统实验代码,操作系统

    7. **文件的链接**:硬链接和软链接是文件系统中两个重要概念。硬链接是指向相同inode的不同文件名,而软链接(符号链接)则是指向另一个文件的路径。 8. **文件系统挂载**:在多分区或多操作系统环境下,文件系统...

    windows下创建软链接.大家都知道win有快捷方式,linux有软链接,但是你知道win也能创建软链接吗?

    6. `junction`是一个第三方工具,由Mark Russinovich开发,用于创建和管理NTFS文件系统的软链接和硬链接。虽然`mklink`命令已经足够完成大部分任务,但`junction`工具提供了更高级的功能,如批量创建、查看和删除...

    NTFS相关文档资料

    - 硬链接和符号链接:硬链接允许多个文件名指向同一个文件,而符号链接则类似于软链接,允许创建指向其他文件或目录的指针。 - 压缩和加密:NTFS提供内置的文件和文件夹压缩功能,可以节省磁盘空间。同时,EFS...

    NTFS.rar_ntfs_ntfs.rar_解析NTFS

    在提供的文档“NTFS文件解析系统的简单分析.doc”中,可能会详细讲解NTFS的结构、如何读取和写入文件、如何管理MFT、以及如何实现权限控制和加密等功能。而“www.pudn.com.txt”可能包含更多参考资料链接或者对NTFS...

    Windows-文件系统.pdf

    除此之外,NTFS还支持多数据流、Unicode、通用索引、动态坏簇重新映射、POSIX支持、文件数据压缩、日志记录、用户磁盘限额、硬链接与软链接、链接跟踪、加密和碎片整理等功能。 NTFS的高级特性使得其成为管理大型...

    ntfs.rar_ntfs_ntfs 结构

    NTFS支持文件的硬链接和软链接,硬链接允许多个文件名指向同一数据块,而软链接则创建了一个指向另一个文件的指针,提供了灵活的文件管理方式。此外,NTFS的权限控制和安全特性,如ACL(Access Control List),使得...

    NTFS.zip_NTFS File system_NTFS windows_ntfs

    此外,NTFS还支持硬链接和软链接,使得一个文件可以在文件系统中有多个入口,或者创建指向其他文件的指针。 5. **元数据**:NTFS提供了丰富的文件属性,如时间戳(创建、修改、访问时间)、文件权限、文件大小等。...

    生成NTFS符号链接的源代码

    从这些文件中,我们可以学习到如何使用Windows API在NTFS文件系统上创建和管理符号链接,以及如何在C语言环境中构建和编译这样的程序。通过研究源代码,我们可以了解到如何处理NTFS特定的文件系统结构,如重分析点...

    模拟UNIX文件系统的设计及实现

    6. 文件链接(硬链接和软链接): - 硬链接:两个或更多个文件名可以共享同一个i节点,这意味着它们都是同一文件的不同入口。硬链接不能跨越文件系统。 - 软链接(符号链接):类似于Windows的快捷方式,指向另一...

    NTFS.rar_ntfs

    1. **硬链接和符号链接**:硬链接允许文件有多个NTFS目录中的入口,而符号链接则类似Linux中的软链接,指向另一个文件或目录的位置。 2. **文件属性**:NTFS支持诸如压缩、索引、只读等额外的文件属性,方便管理和...

    NTFS.zip_ntfs_ntfs原理

    此外,NTFS还引入了其他高级特性,如文件压缩、文件加密(EFS,Encrypting File System)、文件和目录的权限继承、硬链接和软链接、文件属性扩展(如索引和搜索增强)、文件的权限审核等。这些特性使得NTFS成为了一...

    Linux文件管理Linux的文件系统

    4. 链接文件:分为软链接(符号链接)和硬链接。软链接类似Windows的快捷方式,删除原文件会导致链接失效;硬链接则共享相同的存储空间,删除一个文件不会影响其他硬链接。 5. 管道文件(FIFO缓存队列):用于进程间...

    ntfs.rar_ntfs

    NTFS(New Technology File System)是Windows操作系统中最常用的一种文件系统,它提供了许多高级特性,如安全...开发者可以利用这些函数和结构体来解析和操作NTFS文件系统,进行数据读写、权限控制、文件恢复等操作。

Global site tag (gtag.js) - Google Analytics