
コマンドを渡さずにLinuxでファイルを解凍する方法はありますかunzip
?
ソフトウェアunzip
や解凍プログラムを一時的にインストールすることはできません。作成したスクリプトから一部のファイルを解凍する必要があります。
複数のファイルを含むZIPファイルにこのコマンドを使用しましたが、最初のファイルのみが抽出され、jar -xf file.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 ExtractorはLinuxコンピュータだけでなく、WindowsやMacでも動作します。)
次に、互換性のあるコンプレッサーを使用してファイルを再圧縮するか、抽出したパッケージを再コピーします。ファイル転送ツールは、ほぼすべてのプラットフォームで使用できます。
答え2
jarファイルが何らかの方法で破損しているようです。
unzip
サーバーで使用できるようにするには、解凍したパッケージを別のサーバーにインストールし、その/usr/bin/unzip
サーバーにscpして/tmp/myunzip
バイナリを使用します。