我有一个文件夹,我使用共享链接(而不是公共链接)和curl从Dropbox下载。它被下载为拉链文件夹。我需要在bash shell脚本中使用UNZIP解压缩此文件夹。每当文件夹解压缩时,我都会收到以下错误:
warning: stripped absolute path spec from /
mapname: conversion of failed
只是为了确保卷发不是一个奇怪的问题,我直接从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.1
和Ubuntu Linux (Version Unknown)
上测试了此结果。
编辑:我还用jar xf
对其进行了测试,它可以正常工作,没有任何错误。运行jar xvf
表示IT created: /
。我仍然认为这是一个空的,未命名的目录引起了问题,但是我似乎无法正确地说我的语法,以便unzip忽略它。我只会使用jar,但是我需要能够指定输出目录。
试图从命令行解解量dropbox自动化zip,我也找到了此消息:
warning: stripped absolute path spec from /
mapname: conversion of failed
i将Dropbox的拉链与A 正常 zip进行了比较。
区别在于,在解压缩时,在Dropbox的一个位置出现在第一个位置,例如/
。
我只是将选项 -x /
添加到试图排除它的unzip命令中,它对我有用。
在我看来,根问题是存档,而不是您的命令。
默认情况下,我们将相对路径存储在zip文件中。示例:
$ zip tmp.zip /home/mcoolive/*txt
adding: home/mcoolive/file1.txt (deflated 73%)
adding: home/mcoolive/file2.txt (deflated 76%)
默认情况下,UNZIP重新创建所有文件和子目录都在当前目录中重新创建。
在您的情况下,存档包含绝对路径。这是邪恶的。因此,您的客户将绝对路径转换为带警告的相对路径。