我注意到重命名文件不会改变它的哈希值。我还注意到创建一个空文件会给出一个零字节的文件,但它有一个文件名。
由于文件名似乎与文件一起跨设备传输,我想知道文件名究竟是什么?为什么可以在不改变哈希的情况下更改它,为什么它似乎不占用任何空间?
我想如果我了解它们是如何存储的,它就会回答这些问题。
ixe*_*013 12
在 NTFS 中,所有文件数据——文件名、创建日期、访问权限(通过使用访问控制列表)和内容——都作为元数据存储在主文件表中。在 Windows 世界中,您可能还听说过File Allocation Table。其他文件系统具有其他名称和结构。
所有文件系统都以这种方式工作。一定量的空间被保留,通常在磁盘的最开始,就在引导扇区之后。该空间包含一个数据结构,其中包含检索文件的信息。
主文件表不是文件。它只是有组织的数据。事实上,文件只是具有开头和大小的数据,存储在 MFT、FAT 或类似文件中。当您更改文件名时,您不会更改文件,只是主文件表中的一些字节。
由于名称和属性与数据不同,您可以将存储在 Linux 服务器上的文件下载到 Windows 机器上。传输的是数据,而不是元数据。您必须自己命名和选择文件的位置(尽管服务器和浏览器可以提示您原始文件名)。
归档时间: |
|
查看次数: |
3608 次 |
最近记录: |