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.