Zip文件在Linux上以反斜杠展开,没有子目录

紫白色

因此,很奇怪,我可以解压缩Windows上创建的朋友的文件。它给出的结果很奇怪,并且以我以前从未见过的方式是不正确的。

<base directory stuff>
assets\Changes.txt
assets\DefaultConfig,txt

等等。它显然是一个子目录,但它们会以带有反斜杠的文件形式出现。

他们在Windows上制作了它(使用Compress-Archive powerscript命令),我试图在Linux上使用arkKDE中程序和GNOME中的archive-manager提取它。

这里发生了什么?

卡米尔·马乔洛夫斯基

之所以会发生这种情况,是因为某些Windows工具显然使用反斜杠(\)作为分隔符,因此应该使用正斜杠(/)。Unix中的反斜杠可以是文件名或目录名的一部分。

.ZIP文件格式规范(我撰写本文时版本为6.3.5,于2018年11月20日修订)指出:

4.4.17.1文件名,带有可选的相对路径。存储的路径不得包含驱动器或设备字母或斜杠。为了与Amiga和UNIX文件系统等兼容,所有的斜杠必须是正斜杠/,而不是反斜杠\。如果输入来自标准输入,则没有文件名字段。

Microsoft在缓解ZipArchiveEntry.FullName文件Path Separator中提到了此文件

从针对.NET Framework 4.6.1的应用程序开始,该ZipArchiveEntry.FullName属性中使用的路径分隔符已从.NET Framework早期\版本中使用的反斜杠(更改为正斜杠(/)。[...]

影响

所做的更改使.NET实现与.ZIP文件格式规范的4.4.17.1节保持一致,并允许在非Windows系统上对.ZIP存档进行解压缩。

在非Windows操作系统(例如Macintosh)上解压缩由针对.NET Framework早期版本的应用程序创建的zip文件无法保存目录结构。例如,在Macintosh上,它将创建一组文件,这些文件的文件名将目录路径以及所有反斜杠(\)字符和文件名连接在一起结果,未保留解压缩文件的目录结构。

请注意,如果存档器使用了某些旧版本的.NET Framework,或者根本没有使用它,而是对压缩文件实施了自己(独立)的方法,则可能存在该问题。

rar可能会遇到相同的问题:Unrar用名称中的反斜杠(而不是正确的目录层次结构)创建文件

您可能会在Unix&Linux SE上发现此问题有帮助:将Windows创建的ZIP转换为Linux(内部路径问题)我的(有点实验)方法就是这个答案

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Linux:删除只有一个文件且没有子目录的所有目录

来自分类Dev

在 zip 的子目录中添加文件

来自分类Dev

删除结尾的反斜杠将移到子目录的前面

来自分类Dev

如何建立目录中所有文件的索引,包括子目录和ZIP文件的内容?

来自分类Dev

给定父目录的所有子目录中的zip文件

来自分类Dev

删除子目录中带有.htaccess的结尾斜杠

来自分类Dev

如何列出所有文件,但只能列出没有子目录的目录?

来自分类Dev

如何列出Zip存档中的所有* .doc文件,包括子目录中的文件?

来自分类Dev

如何压缩大量子目录,并使每个zip文件包含N个子目录

来自分类Dev

如何压缩大量子目录,并让每个 zip 文件包含 N 个子目录

来自分类Dev

Java:提取具有多个子目录的zip文件

来自分类Dev

PHP:使用 scandir 从多个子目录中获取所有 zip 文件

来自分类Dev

如何解压缩我的子目录中的所有 zip 文件夹?

来自分类Dev

重命名Linux目录和子目录中的所有文件

来自分类Dev

删除Linux中目录的所有子目录中的特定文件

来自分类Dev

如何列出Linux中的所有可执行文件(目录,子目录,$ PATH)?

来自分类Dev

没有列出子目录的文件夹的Powershell文件夹大小

来自分类Dev

如何列出没有路径的子目录中的所有文件?

来自分类Dev

如何列出没有路径的子目录中的所有文件?

来自分类Dev

显示所有没有任何子目录的文件夹

来自分类Dev

如何只查找没有子目录的目录?

来自分类Dev

Magento在没有子目录的单个域上使用多种货币

来自分类Dev

Git没有登台子目录中的.mp4文件

来自分类Dev

从目录复制所有文件,而不创建子目录

来自分类Dev

查找目录及其子目录中的所有文件

来自分类Dev

从所有子目录移动特定文件,并根据子目录重命名

来自分类Dev

列出具有子目录权限的子目录中的文件

来自分类Dev

列出子目录中的所有文件,按子目录名称排序

来自分类Dev

Linux将具有相同名称的子目录复制到文件

Related 相关文章

  1. 1

    Linux:删除只有一个文件且没有子目录的所有目录

  2. 2

    在 zip 的子目录中添加文件

  3. 3

    删除结尾的反斜杠将移到子目录的前面

  4. 4

    如何建立目录中所有文件的索引,包括子目录和ZIP文件的内容?

  5. 5

    给定父目录的所有子目录中的zip文件

  6. 6

    删除子目录中带有.htaccess的结尾斜杠

  7. 7

    如何列出所有文件,但只能列出没有子目录的目录?

  8. 8

    如何列出Zip存档中的所有* .doc文件,包括子目录中的文件?

  9. 9

    如何压缩大量子目录,并使每个zip文件包含N个子目录

  10. 10

    如何压缩大量子目录,并让每个 zip 文件包含 N 个子目录

  11. 11

    Java:提取具有多个子目录的zip文件

  12. 12

    PHP:使用 scandir 从多个子目录中获取所有 zip 文件

  13. 13

    如何解压缩我的子目录中的所有 zip 文件夹?

  14. 14

    重命名Linux目录和子目录中的所有文件

  15. 15

    删除Linux中目录的所有子目录中的特定文件

  16. 16

    如何列出Linux中的所有可执行文件(目录,子目录,$ PATH)?

  17. 17

    没有列出子目录的文件夹的Powershell文件夹大小

  18. 18

    如何列出没有路径的子目录中的所有文件?

  19. 19

    如何列出没有路径的子目录中的所有文件?

  20. 20

    显示所有没有任何子目录的文件夹

  21. 21

    如何只查找没有子目录的目录?

  22. 22

    Magento在没有子目录的单个域上使用多种货币

  23. 23

    Git没有登台子目录中的.mp4文件

  24. 24

    从目录复制所有文件,而不创建子目录

  25. 25

    查找目录及其子目录中的所有文件

  26. 26

    从所有子目录移动特定文件,并根据子目录重命名

  27. 27

    列出具有子目录权限的子目录中的文件

  28. 28

    列出子目录中的所有文件,按子目录名称排序

  29. 29

    Linux将具有相同名称的子目录复制到文件

热门标签

归档