是否可以在提取之前重命名 zip 存档中的文件?

Яро*_*лин 5 zip encoding filenames

我从网上提取了一个 zip 文件,该文件打包在一个系统上,其中文件名以我的解压缩程序无法读取的格式进行编码。也许文件系统不支持那些奇怪的字符,或者 shell。我不完全确定。

由于我并不真正关心文件名,因此可接受的解决方案是重命名文件,或将内容写入文件中指定的名称以外的文件名。使用通用命令行 zip 实用程序可以实现吗?如果是,如何。也欢迎其他有关可能出错的建议(可能不是 zip 实用程序)。

症状如下:


$ unzip -l 3688232.zip ; unzip 3688232.zip 
Archive:  3688232.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
   107937  10-24-2012 01:00   [-?M+?V+?e-?] Le Gout Des autres - Agn+?s Jaoui - 2000 (sep subs).srt
     6354  10-24-2012 01:00   le.gout.des.autres.(3688232).nfo
---------                     -------
   114291                     2 files
Archive:  3688232.zip
error:  cannot create [-?M+?V+?e-?] Le Gout Des autres - Agn+?s Jaoui - 2000 (sep subs).srt
        Invalid or incomplete multibyte or wide character

$ unzip --help 
UnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Send
bug reports using http://www.info-zip.org/zip-bug.html; see README for details.

Run Code Online (Sandbox Code Playgroud)

注意:
我对涉及图形存档器的建议并不特别感兴趣,因为我已经使用 `wine WinRAR.exe' 成功提取了该文件。

小智 5

我设法用Python获取所有文件:

import zipfile
z = zipfile.ZipFile('file.zip')
for i, f in enumerate(z.filelist):
    f.filename = 'file_{0:03}'.format(i)
    z.extract(f)
Run Code Online (Sandbox Code Playgroud)

您还将获得一些与目录条目相对应的空文件。


Kar*_*ran 3

你能试一下unzip -p file.zip archivedfilename.ext > newfilename.ext吗 ?