Esistono altre opzioni per decomprimere un file in Ubuntu oltre a "unzip"? [chiuso]


11

Il mio amministratore di sistema non è raggiungibile in questo momento, e ho un file zippato sul server che vorrei decomprimere ... tuttavia, al momento non abbiamo zip e unzip installati e non ho accesso root per installarli. ..

Sono completamente fuori dalle opzioni? Ci sono altre cose che possono decomprimere questo file?


Tar non è installato? tar -x
— spuder

ho appena provato tar -x file.zip e sembra che stia facendo qualcosa ...
— johnnietheblack

@spuder dovresti lasciare una risposta nel caso in cui funzioni, e io ti
— voterò

Risposte:


10

Non l'ho provato, ma c'è un zipfilemodulo nella libreria standard di Python dalla versione 1.6 e dalla versione 2.6 ha avuto un extractallmetodo

Si dovrebbe essere in grado di fare qualcosa di simile:

  1. Crea un file con i seguenti contenuti (modificandolo per adattarlo al tuo caso d'uso).
  2. Salvare il file come "unzipfile.py"
  3. Esegui con python unzipfile.py

E verrà estratto test.zipa /home/user/directory.

import zipfile

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

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

In alternativa, BusyBox contiene un "modulo" decompresso e se è possibile scaricare ed eseguire BusyBox collegato staticamente, è possibile utilizzarlo per decomprimere le cose.


ho provato la prima parte di questo e ho ottenuto: Il programma 'import' si trova nei seguenti pacchetti: * imagemagick * graphicsmagick-imagemagick-compat - a proposito ... non ti
— ho votato in basso

Oh. Sai che devi eseguirlo tramite Python?
— Tom O'Connor,

1
WOW. sembra che abbia funzionato .... Mi sono imbattuto con successo in modalità interattiva!
— johnnietheblack,

2
Benvenuto in Python. È meraviglioso.
— Tom O'Connor,

2
Ora puoi semplicemente chiamare il modulo direttamente dalla riga di comando python -m zipfile -e monty.zip target-dir/(vedi docs.python.org/2/library/zipfile.html#command-line-interface )
— Peter Gibson,

11

Se hai javainstallato, il jarcomando può decomprimere un file zippato:

jar xvf file.zip 

Nota che puoi installare java senza accesso root: http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html


1
Oggi ho imparato.
— Tom O'Connor,

Il programma 'jar' si trova nei seguenti pacchetti: * default-jdk * fastjar * gcj-4.6-jdk * openjdk-6-jdk * gcj-4.5-jdk * openjdk-7-jdk Chiedi all'amministratore di installare uno di loro :(
— johnnietheblack

1
Vedi il mio aggiornamento della risposta.
— jlliagre,

Ho un po 'paura di installare qualcosa sul server, per paura dell'ira del mio amministratore di sistema, ma ci proverò sicuramente se necessario.
— johnnietheblack,

2

BSD / Mac OSX

L'utilità tar fornita con derivati ​​Mac e BSD supporta l'estrazione di archivi zip dal comando tar

tar -xvf foo.zip

tar --version
bsdtar 2.8.3 - libarchive 2.8.3

Debian / RHEL

L'archivio tar fornito con Ubuntu e altri non supporta l'estrazione di file zip. L'opzione migliore sarà scp il file su una macchina con zip installato.

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

Test del fumo

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

Aggiornare

Riscrivi la risposta per chiarire che tar -xvf funziona solo su sistemi operativi bsd. Sebbene sia una buona informazione, dopo tutto non funzionerà in questo scenario.


cosa fa -zxvf?
— johnnietheblack,

quando lo provo, ottengo tar: questo non sembra un tar tar tar: saltare all'intestazione successiva ... significa che non è riuscito o continua?
— johnnietheblack,

tarla capacità di elaborare i file zip sarebbe un'estensione che Ubuntu tar (cioè GNU tar) non sembra fornire. -zè per i file compressi con zip, non quelli compressi (a meno che non sia un'estensione molto recente).
— jlliagre,

significa che se carico un gzip funzionerebbe?
— johnnietheblack,

Sarà, ma non è questa la tua domanda ;-)
— jlliagre

2

Non credo che ci siano altri modi per decomprimere il file su un sistema senza unzip, ma è possibile inviare il file a un altro sistema Linux (con decompressione installata o accesso root disponibile), decomprimere il file lì e - se necessario - inviare il decompresso file sul server originale.

Il comando per inviare un file da un server a un altro è scp. La sintassi per inviare il file è:

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

Spero che sia di aiuto!


0

Copia il file su un altro computer, decomprimilo e copia indietro.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.