NTFS数据流简介
什么是NTFS数据流?
在介绍NTFS数据流之前,我们先简单了解一下NTFS文件系统。NTFS是微软Windows NT内核的系列操作系统支持的、一个特别为网络和磁盘配额、文件加密等管理安全特性设计的磁盘格式。NTFS比FAT文件系统更稳定,更安全,功能也更为强大。如果要让FAT文件系统转换为NTFS文件系统,可以在“命令提示符”中输入“convert 分区盘符: /fs:ntfs”,即可将该分区的文件系统转换为NTFS。
NTFS交换数据流(Alternate Data Streams,简称ADS)是NTFS磁盘格式的一个特性,在NTFS文件系统下,每个文件都可以存在多个数据流,就是说除了主文件流之外还可以有许多非主文件流寄宿在主文件流中。它使用资源派生来维持与文件相关的信息,虽然我们无法看到数据流文件,但是它却是真实存在于我们的系统中的。
那么为什么我们无法看到系统中的数据流文件呢,是Windows为了防止我们误删数据流文件而故意设置的障碍吗?答案是否定的,我们之所以无法在系统中看到NTFS数据流文件,是因为Windows中的很多工具对数据流文件的支持并不是很好,就像“资源管理器”,我们无法在“资源管理器”中看到有关数据流文件的变化。
NTFS数据流的创建实例
相信不少看了上文介绍的读者朋友还是对NTFS数据流一头雾水,没有关系,下面我们通过实例来深入了解一下NTFS数据流。
创建宿主文件宿主文件在这里指的就是普通文件,是在Windows中可以正常显示、运行、编辑的任何类型文件。我们先来创建一个txt格式的文本文档,把它作为宿主文件。运行“记事本”,随意输入一些内容,例如“测试——宿主文件”,然后将其保存为C: estsuzhu.txt。接着我们在suzhu.txt上点右键,选择“属性”,可以发现其文件大小为16字节。
关联数据流的宿主文件创建完成后,我们再来创建一个数据流文件,将其与宿主文件关联,看看宿主文件会发生什么变化。点击“开始”→“运行”,输入cmd运行“命令提示符”,切换到C: est目录中,输入命令“echo "测试——数据流文件" > suzhu.txt:shujuliu.txt”。这样我们就创建了一个名为shujuliu.txt,内容为“测试——数据流文件”的数据流文件,并与宿主文件suzhu.txt进行了关联。
让我们回到C: est目录中,可以发现在该文件夹中只有一个suzhu.txt,而没有数据流文件shujuliu.txt,即使在“命令提示符”中使用“dir”命令也找不到shujuliu.txt。既然宿主文件suzhu.txt和数据流文件shujuliu.txt进行了关联,那么是不是shujuliu.txt的内容合并到suzhu.txt中了呢?我们打开suzhu.txt,其中的内容并没有改变,仍然是“测试——宿主文件”,而文件大小仍是16字节。
那么数据流文件shujuliu.txt哪去了呢?还是用“命令提示符”让它现形吧,在“命令提示符”中输入命令“notepad suzhu.txt:shujuliu.txt”,在弹出的记事本程序中就会出现数据流文件shujuliu.txt的内容。而我们在“命令提示符”中使用type、edit等命令对数据流文件进行编辑时,将会出现错误,这是因为“命令提示符”还不能很好地支持数据流文件。记事本虽然能够打开数据流文件,但并不表示它能完全支持NTFS数据流,这一点我们在“另存为”数据流文件的时候就会发现。
创建数据流文件我们除了能将数据流文件和宿主文件进行绑定外,还能够创建单独的数据流文件。在“命令提示符”中输入“echo "测试——数据流文件" > :shujuliu2.txt”,这样就创建了一个名为shujuliu2.txt的数据流文件,而这个文件无论是在“资源管理器”还是在“命令提示符”中使用“dir”命令,都是无法看到的。可以说,这个文件已经在系统中隐身了,我们只能通过输入命令“notepad :shujuliu2.txt”得知它的存在,而即使知道它的存在,我们也无法删除,因为命令提示符中“del”命令已经失去了作用。唯一能将之删除的办法,就是删除其上一级目录,如果单独的数据流文件存在于磁盘根目录,那么删除它将是一件很痛苦的事。
相关新闻>>
- 发表评论
-
- 最新评论 更多>>