有没有办法在Linux中不通过命令来解压文件unzip
?
我们暂时无法安装该软件unzip
或任何解压程序,需要在创建的脚本中解压一些文件。
我jar -xf file.zip
在包含多个文件的 ZIP 文件中使用了该命令,但是只提取了第一个文件,并且终端中出现了以下错误,知道它可能是什么吗?
java.io.IOException: Push back buffer is full
at java.io.PushbackInputStream.unread(PushbackInputStream.java:215)
at java.util.zip.ZipInputStream.readEnd(ZipInputStream.java:367)
at java.util.zip.ZipInputStream.read(ZipInputStream.java:156)
at java.util.zip.ZipInputStream.closeEntry(ZipInputStream.java:100)
at sun.tools.jar.Main.extractFile(Main.java:936)
at sun.tools.jar.Main.extract(Main.java:852)
at sun.tools.jar.Main.run(Main.java:242)
at sun.tools.jar.Main.main(Main.java:1149)
当我运行jar tvf file.zip
命令时,我能够看到里面的一切file.zip
。
答案1
如果无法在目标计算机上安装必要的软件,请考虑将 ZIP 文件移动到已安装必要软件的计算机。 (ZIP 提取器不仅适用于 Linux 计算机,也适用于 Windows 和 Mac。)
然后使用兼容的压缩器重新打包文件或再次将提取的包复制回来。几乎所有平台都可以使用文件传输工具。
答案2
听起来 jar 文件在某些方面可能已损坏。
要unzip
在服务器上可用,请在另一台服务器上安装解压缩包,然后 scp 到/usr/bin/unzip
有/tmp/myunzip
问题的服务器上,然后使用该二进制文件。