我有一个ZIP存档,里面有一些照片。 问题是,我无法解压缩该存档中的所有文件。
解压缩命令:
unzip archive.zip
Archive: archive.zip
mapname: conversion of failed
mapname: conversion of failed
mapname: conversion of failed
mapname: conversion of failed
mapname: conversion of failed
mapname: conversion of failed
mapname: conversion of failed
mapname: conversion of failed
mapname: conversion of failed
mapname: conversion of failed
mapname: conversion of failed
mapname: conversion of failed
ZIP存档中的文件列表(每个文件都没有名称...):
unzip -l archive.zip
Archive: archive.zip
Length Date Time Name
--------- ---------- ----- ----
61684 03-07-2019 10:01
55901 03-07-2019 10:01
71678 03-07-2019 10:01
69684 03-07-2019 10:01
57131 03-07-2019 10:01
95984 03-07-2019 10:01
69633 03-07-2019 10:01
73401 03-07-2019 10:01
79661 03-07-2019 10:01
53126 03-07-2019 10:01
68691 03-07-2019 10:01
66707 03-07-2019 10:01
--------- -------
823281 12 files
解压缩测试命令:
unzip -t archive.zip
Archive: archive.zip
testing: OK
testing: OK
testing: OK
testing: OK
testing: OK
testing: OK
testing: OK
testing: OK
testing: OK
testing: OK
testing: OK
testing: OK
如果我尝试使用管道命令解压缩,那么我有一个JPEG文件,其中包含所有存档照片。
unzip -p archive.zip | cat > $(date +%s%3N).jpeg
请,有机会解压缩这样的存档吗?
已更新
在HEX编辑器中显示ZIP归档文件时,我看到归档文件尚未设置名称。图像上是ZIP文件的结尾,其中包含有关存档的每个文件的信息。图像上的选定字节代表一个存档文件的信息容器。
答案 0 :(得分:0)
首先,我认为您在shell中的语言环境不应为ASCII。
locale
可以存档的编码。想到了UTF-16 / UTF-32大字节序,因为对于ASCII字母,前一个nul字节将占空字符串。
unzip -O UTF-16BE -l archive.zip
unzip -O UTF-16BE archive.zip
否则,需要一些编程,要么修补名称,要么遍历条目并选择您自己的名称来存储每个文件。 Java ZipInputStream可以。
我认为是这种情况,有人编程压缩目录但忘记设置条目的文件名。