压缩目录时出现“ zip警告:名称不匹配”


19

我有一个约180 GB的文件夹,我需要将其压缩为:

zip -p password /Volumes/GGZ/faster/mybigfolder/* /Volumes/Storage\ 4/archive.zip

但它说:

    zip warning: name not matched: /Volumes/Storage 4/archive.zip

那么我该怎么做呢?另一方面,archive.zip它不存在,但是我正在尝试创建它。


试试zip -P password /Volumes/Storage\ 4/archive -p /Volumes/GGZ/faster/mybigfolder/*
Costas

Answers:


7

您的命令应为:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

手册页(man zip),显示您应该具有:

zip <options> <archive> <inpath...>

另外,-r强烈建议在“ *” shell全局选项上使用递归选项。


另一个相关的陷阱是一个简单的键入错误(例如,如果您将命令从一个脚本复制到另一个脚本)。例如,winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*您不小心键入,而不是winzip32.exe -a -r %DEST_PATH%\Output.zip %DEST_PATH%\Output.zip %SOURCE_PATH%\*.*。注意额外的Output.zip...轻松完成!
AlainD

23

此错误也可能是由于目录树中的符号链接被压缩引起的。

如果这些目录没有正确的目的地(可能是因为目录已从其他位置移动或复制),则zip将尝试遵循符号链接来归档目标文件。

您可以使用-y(或--symlinks)选项避免这种情况发生(并且也可以获得您可能想要的效果,即不存档文件的多个副本)。


0

使用递归标志(-r)而不是glob(*)来匹配要压缩的文件。另外,首先指定档案名称,然后提供文件列表:

zip -p password -r /Volumes/Storage\ 4/archive.zip /Volumes/GGZ/faster/mybigfolder/

0

过去,由于-r开关无法修复的其他原因,我也收到此错误。发生的事情是我使用以下bash代码/变量将基于文件的文件添加到zip中

somevar=`ls -1 somedir`

问题在于,ls仅列出文件,就好像它们在当前目录中一样,这就是为什么zip要抱怨(实际上,文件不存在以zip格式,因为被告知要在错误/当前目录中查找)。

如果这是您的问题,则可以这样纠正:

somevar=`ls -1d somedir/*`

如您所见,我在目录名的末尾使用了-d开关/*,然后成功添加了文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.