Apakah ada opsi lain untuk unzip file di Ubuntu selain "unzip"? [Tutup]


11

Sysadmin saya tidak dapat dijangkau saat ini, dan saya memiliki file zip di server yang ingin saya unzip ... namun, saat ini kami belum menginstal zip dan unzip, dan saya tidak memiliki akses root untuk menginstalnya. ..

Apakah saya kehabisan pilihan? Apakah ada hal lain yang dapat unzip file ini?


Apakah tar tidak diinstal? tar -x
Spuder

baru saja mencoba tar -x file.zip dan sepertinya melakukan sesuatu ...
johnnietheblack

@spuder Anda harus meninggalkan jawaban jika ini berhasil, dan saya akan menjawab ya
johnnietheblack

Jawaban:


10

Saya belum mencoba ini, tetapi , ada zipfilemodul di perpustakaan standar Python sejak versi 1.6, dan karena versi 2.6 telah memiliki extractallmetode

Anda harus dapat melakukan sesuatu seperti:

  1. Buat file dengan konten berikut (mengeditnya agar sesuai dengan kasus penggunaan Anda).
  2. Simpan file sebagai "unzipfile.py"
  3. Jalankan dengan python unzipfile.py

Dan itu akan ekstrak test.zipke /home/user/directory.

import zipfile

with zipfile.ZipFile('test.zip', "r") as z:
  z.extractall("/home/user/directory")

Sumber: https://stackoverflow.com/a/9432315/167299

Atau, BusyBox berisi "modul" unzip, dan jika Anda dapat mengunduh dan menjalankan BusyBox yang terhubung secara statis, maka Anda dapat menggunakannya untuk meng-unzip sesuatu.


saya mencoba bagian pertama ini dan mendapat: Program 'impor' dapat ditemukan dalam paket berikut: * imagemagick * graphicsmagick-imagemagick-compat - btw ... saya tidak downvote Anda
johnnietheblack

Oh Anda tahu Anda perlu menjalankannya melalui Python?
Tom O'Connor

1
WOW. Sepertinya itu berhasil .... Saya sengaja menemukan dalam mode interaktif!
johnnietheblack

2
Selamat datang di Python. Itu mengagumkan.
Tom O'Connor

2
Anda sekarang dapat langsung memanggil modul dari baris perintah python -m zipfile -e monty.zip target-dir/(lihat docs.python.org/2/library/zipfile.html#command-line-interface )
Peter Gibson

11

Jika Anda telah javamenginstal, jarperintah dapat membuka zip file zip:

jar xvf file.zip 

Perhatikan bahwa Anda dapat menginstal java tanpa akses root: http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html


1
Hari ini saya belajar.
Tom O'Connor

Program 'jar' dapat ditemukan dalam paket-paket berikut: * default-jdk * fastjar * gcj-4.6-jdk * openjdk-6-jdk * gcj-4.5-jdk * openjdk-7-jdk Minta administrator Anda untuk menginstal salah satu dari mereka :(
johnnietheblack

1
Lihat pembaruan jawaban saya.
jlliagre

Saya sedikit takut untuk menginstal apa pun di server, karena takut akan murka sysadmin saya, tetapi saya pasti akan mencoba ini jika perlu.
johnnietheblack

2

BSD / Mac OSX

Utilitas tar yang dikirimkan bersama dengan turunan Mac dan BSD, mendukung ekstraksi arsip zip dari perintah tar

tar -xvf foo.zip

tar --version
bsdtar 2.8.3 - libarchive 2.8.3

Debian / RHEL

Arsip tar yang dikirimkan bersama Ubuntu dan lainnya tidak mendukung ekstraksi file zip. Pilihan terbaik adalah scp file ke mesin dengan zip terpasang.

tar -xvf foo.zip
tar: This does not look like a tar archive
tar: Exiting with failure status due to previous errors

Tes Asap

echo "the quick brown fox jumped over the lazy dog" > bar.txt
zip -r bar.zip bar.txt
rm bar.txt
tar -xvf bar.txt
cat bar.txt
the quick brown fox jumped over the lazy dog

Memperbarui

Tulis ulang jawaban untuk menjelaskan bahwa tar -xvf hanya berfungsi pada bsd OS. Walaupun ini adalah informasi yang baik, bagaimanapun juga tidak akan berfungsi dalam skenario ini.


apa yang dilakukan -zxvf?
johnnietheblack

ketika saya mencobanya, saya mendapatkan tar: Ini tidak terlihat seperti tar arsip tar: Melewati header berikutnya ... apakah itu berarti gagal, atau masih berjalan?
johnnietheblack

tarkemampuan untuk memproses file zip akan menjadi ekstensi tar Ubuntu (yaitu GNU tar) tampaknya tidak menyediakan. -zadalah untuk file yang di-zip, bukan yang di-zip (kecuali ekstensi yang sangat baru).
jlliagre

apakah itu berarti jika saya mengunggah gzip itu akan berfungsi?
johnnietheblack

Memang, tapi itu bukan pertanyaan Anda ;-)
jlliagre

2

Saya tidak percaya ada cara lain untuk membuka ritsleting file pada sistem tanpa unzip, tetapi Anda bisa mengirim file ke sistem linux lain (dengan unzip diinstal atau akses root tersedia), unzip file di sana dan - jika perlu - mengirim ritsleting terbuka mengajukan kembali ke server asli.

Perintah untuk mengirim file dari satu server ke yang lain adalah scp. Sintaks untuk mengirim file adalah:

scp <filename> <username>@<otherhostname>:<portnumber><fullpathtolocation>
e.g.: scp file.zip  user@server.example.com:2222/home/user/ 

Semoga ini membantu!



Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.