我有一个文件夹,我使用共享链接(不是公共链接)和卷曲从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.1
和Ubuntu Linux (Version Unknown)
上对此进行了测试,结果相同。
jar xf
对其进行了测试,并且工作正常,没有任何错误。正在运行jar xvf
会显示created: /
。我仍然认为这是一个空的,未命名的目录导致问题,但我似乎无法正确使用我的语法,因此解压缩将忽略它。我只想使用jar,但我需要能够指定输出目录。
答案 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%)
默认情况下,解压缩会重新创建所有文件,并在当前目录中重新创建子目录。
在您的情况下,存档包含绝对路径。这是邪恶的。因此,您的客户将绝对路径转换为相对路径并发出警告。