igmkjp Asked: 2023-11-16 18:08:33 +0800 CST2023-11-16 18:08:33 +0800 CST 2023-11-16 18:08:33 +0800 CST 如果我压缩 NTFS 格式的文件夹,ZIP 文件是 NTFS 吗? 772 如果我从 NTFS 分区压缩文件夹,是否可以在无法读取 NTFS 文件系统的设备或操作系统上提取该文件夹? 更一般地说,zip 文件是否以某种方式保留解压文件夹的文件系统? filesystems 2 个回答 Voted LPChip 2023-11-16T18:23:11+08:002023-11-16T18:23:11+08:00 简短的回答,不。 Zip 格式不存储文件属性(只读、隐藏、存档和系统)以外的文件权限 如果您在具有一定安全权限的一个文件夹中创建存档,然后将该文件移动到具有不同权限的另一文件夹,然后提取该存档,则将使用从存储文件的位置继承的权限创建新文件。 如果您想创建一个可以传输的文件系统,请使用 VHDX 之类的东西,其中文件内有完整的分区方案。请注意,如果您选择 NTFS 路径,该文件系统将仅在您的计算机上工作,或者如果计算机已加入域,并且您使用域用户,则任何已加入域的计算机都可以在同一域中使用。 您可以使用磁盘管理创建 VHDX 文件。如果需要,您甚至可以随后压缩 .VHDX 以对其进行压缩。 Best Answer u1686_grawity 2023-11-16T19:44:08+08:002023-11-16T19:44:08+08:00 如果我压缩 NTFS 格式的文件夹,ZIP 文件是 NTFS 吗? 不。Zip 存档中的“文件系统”是……Zip,字面意思。 如果我从 NTFS 分区压缩文件夹,是否可以在无法读取 NTFS 文件系统的设备或操作系统上提取该文件夹? 是的。任何支持 Zip 格式的软件都能够提取任何 Zip 存档。 归档文件时,各种文件系统级元数据不会作为单个不透明数据块进行检索;归档程序根据需要检索各个字段(例如,它复制文件的实际内容,然后进行一个系统调用来检索创建/修改的时间戳,然后进行另一个系统调用来检索隐藏/只读标志...)并将它们存储在它想要的。 因此,虽然存档可能会从原始文件复制一些(甚至大多数)文件系统元数据和属性,但这些属性在存档中存储的确切方式是由存档格式定义的,而不是由原始文件系统定义的。 即使存档确实存储了一些特定于文件系统的参数,在大多数情况下,程序也可以简单地跳过它们不知道如何处理的字段。例如,如果您在 Linux 上创建 Zip 文件,它将存储Linux 特定的文件权限字段,但仍然可以在 Windows 上提取该文件 - 提取器将忽略该字段。 同样,如果您启用 WinRAR(或 7zip)中的选项来存档 NTFS 权限或其他 NTFS 特定属性,它会将它们存储为单独的字段,并且在提取到不兼容的存储时它们将被忽略。 更一般地说,zip 文件是否以某种方式保留解压文件夹的文件系统? 文件系统本身,不,它们不保留这一点(并且该软件甚至无法直接访问如此低级别的文件)。 存档最多保留文件系统(和/或操作系统)的一些特征,例如 Windows 上特定于 NTFS 和 FAT 的“DOS 属性”(隐藏/只读/系统),或者特定于 Windows 的“文件版本” 。特定于 VMS 上的 ODS,但它们通常以相当通用的方式存储。 因此,如果我使用图库应用程序向图像文件添加标签,zip 不一定会保留这些标签? 大多数图库应用程序不使用文件系统级元数据进行标记。(事实上,我只见过一个这样的应用程序 - Windows 2000/XP“属性”对话框曾经具有的内置标记。3 )相反,您通常将标记直接嵌入到每个文件的内容中或存储起来在相邻文件中。 例如,当您处理 JPEG 照片时,就文件系统而言,EXIF/IPTC/XMP 标签实际上是文件数据的一部分。数据作为一大块字节进行检索,因此嵌入在 .jpeg 中的 EXIF 标记将始终与文件的其余数据一起存档,无论软件的元数据存档功能如何。 (图库应用程序使用的唯一文件系统级元数据字段可能是“上次修改”时间,以防它与 EXIF 日期不同。大多数归档应用程序确实捕获“上次修改”时间,因为它几乎得到了普遍支持系统。) 类似地,例如 MP3 文件将其 ID3 标签作为常规数据存储在文件内;文件系统仍然不知道它们。 1(是的,确实如此。参见zipinfo -v。) 2(Zip 格式还支持自定义子字段 - Unicode 文件名是一个子字段 - 因此,如果开发人员愿意,理论上它也可以扩展为存储 NTFS 元数据,但到目前为止还没有人愿意这样做。) 3(Windows Longhorn 对于文件系统级标记有更宏伟的计划,但这从未实现;相反,该功能已从 Vista 的资源管理器中彻底删除。)
简短的回答,不。
Zip 格式不存储文件属性(只读、隐藏、存档和系统)以外的文件权限
如果您在具有一定安全权限的一个文件夹中创建存档,然后将该文件移动到具有不同权限的另一文件夹,然后提取该存档,则将使用从存储文件的位置继承的权限创建新文件。
如果您想创建一个可以传输的文件系统,请使用 VHDX 之类的东西,其中文件内有完整的分区方案。请注意,如果您选择 NTFS 路径,该文件系统将仅在您的计算机上工作,或者如果计算机已加入域,并且您使用域用户,则任何已加入域的计算机都可以在同一域中使用。
您可以使用磁盘管理创建 VHDX 文件。如果需要,您甚至可以随后压缩 .VHDX 以对其进行压缩。
不。Zip 存档中的“文件系统”是……Zip,字面意思。
是的。任何支持 Zip 格式的软件都能够提取任何 Zip 存档。
归档文件时,各种文件系统级元数据不会作为单个不透明数据块进行检索;归档程序根据需要检索各个字段(例如,它复制文件的实际内容,然后进行一个系统调用来检索创建/修改的时间戳,然后进行另一个系统调用来检索隐藏/只读标志...)并将它们存储在它想要的。
因此,虽然存档可能会从原始文件复制一些(甚至大多数)文件系统元数据和属性,但这些属性在存档中存储的确切方式是由存档格式定义的,而不是由原始文件系统定义的。
即使存档确实存储了一些特定于文件系统的参数,在大多数情况下,程序也可以简单地跳过它们不知道如何处理的字段。例如,如果您在 Linux 上创建 Zip 文件,它将存储Linux 特定的文件权限字段,但仍然可以在 Windows 上提取该文件 - 提取器将忽略该字段。
同样,如果您启用 WinRAR(或 7zip)中的选项来存档 NTFS 权限或其他 NTFS 特定属性,它会将它们存储为单独的字段,并且在提取到不兼容的存储时它们将被忽略。
文件系统本身,不,它们不保留这一点(并且该软件甚至无法直接访问如此低级别的文件)。
存档最多保留文件系统(和/或操作系统)的一些特征,例如 Windows 上特定于 NTFS 和 FAT 的“DOS 属性”(隐藏/只读/系统),或者特定于 Windows 的“文件版本” 。特定于 VMS 上的 ODS,但它们通常以相当通用的方式存储。
大多数图库应用程序不使用文件系统级元数据进行标记。(事实上,我只见过一个这样的应用程序 - Windows 2000/XP“属性”对话框曾经具有的内置标记。3 )相反,您通常将标记直接嵌入到每个文件的内容中或存储起来在相邻文件中。
例如,当您处理 JPEG 照片时,就文件系统而言,EXIF/IPTC/XMP 标签实际上是文件数据的一部分。数据作为一大块字节进行检索,因此嵌入在 .jpeg 中的 EXIF 标记将始终与文件的其余数据一起存档,无论软件的元数据存档功能如何。
(图库应用程序使用的唯一文件系统级元数据字段可能是“上次修改”时间,以防它与 EXIF 日期不同。大多数归档应用程序确实捕获“上次修改”时间,因为它几乎得到了普遍支持系统。)
类似地,例如 MP3 文件将其 ID3 标签作为常规数据存储在文件内;文件系统仍然不知道它们。
1(是的,确实如此。参见
zipinfo -v
。)2(Zip 格式还支持自定义子字段 - Unicode 文件名是一个子字段 - 因此,如果开发人员愿意,理论上它也可以扩展为存储 NTFS 元数据,但到目前为止还没有人愿意这样做。)
3(Windows Longhorn 对于文件系统级标记有更宏伟的计划,但这从未实现;相反,该功能已从 Vista 的资源管理器中彻底删除。)