解压缩 - 警告和地图名称

时间:2014-01-24 00:55:32

标签: bash curl warnings unzip directory-structure

我有一个文件夹,我使用共享链接(不是公共链接)和卷曲从Dropbox下载。它作为压缩文件夹下载。我需要在bash shell脚本中使用unzip解压缩此文件夹。每当文件夹解压缩时,我都会收到以下错误:

warning:  stripped absolute path spec from /
mapname:  conversion of  failed

为了确保curl不是一个奇怪的问题,我直接从Dropbox下载了文件夹并再次尝试。我得到了同样的错误。显示所有文件和子目录,并且它们的完整性似乎没有任何问题。使用GUI解压缩任一文件夹不会导致错误消息。

我运行unzip -l并注意到一个奇怪的第一个条目:

     Length   Method    Size  Ratio   Date   Time   CRC-32    Name
    --------  ------  ------- -----   ----   ----   ------    ----
           0  Defl:N        2   0%  01-23-14 19:38  00000000  /

我认为这是导致问题的空目录。我的问题是,有没有办法忽略这个空目录或抑制错误消息(我试过-qq没有运气)?或者,有什么我做错了/错过了吗?

我已在Mac OSX 10.9.1Ubuntu Linux (Version Unknown)上对此进行了测试,结果相同。

编辑:我还使用jar xf对其进行了测试,并且工作正常,没有任何错误。正在运行jar xvf会显示created: /。我仍然认为这是一个空的,未命名的目录导致问题,但我似乎无法正确使用我的语法,因此解压缩将忽略它。我只想使用jar,但我需要能够指定输出目录。

2 个答案:

答案 0 :(得分:7)

尝试从命令行解压缩Dropbox自动生成的zip,我也发现了这条消息:

warning:  stripped absolute path spec from /
mapname:  conversion of  failed

我将Dropbox的拉链与普通拉链进行了比较。

不同之处在于,在解压缩时,Dropbox的第一个位置会出现/这样的文件。

我只是将选项-x /添加到试图排除它的unzip命令中,它对我有效。

答案 1 :(得分:1)

在我看来,根本问题是档案,而不是你的命令。

默认情况下,我们将相对路径存储在ZIP文件中。例如:

$ zip tmp.zip /home/mcoolive/*txt
adding: home/mcoolive/file1.txt (deflated 73%)
adding: home/mcoolive/file2.txt (deflated 76%)

默认情况下,解压缩会重新创建所有文件,并在当前目录中重新创建子目录。

在您的情况下,存档包含绝对路径。这是邪恶的。因此,您的客户将绝对路径转换为相对路径并发出警告。