¿Hay otras opciones para descomprimir un archivo en Ubuntu además de "descomprimir"? [cerrado]

11

Mi administrador de sistemas no está disponible en este momento, y tengo un archivo comprimido en el servidor que me gustaría descomprimir ... sin embargo, actualmente no tenemos instalado zip y descomprimir, y no tengo acceso de root para instalarlos. ..

¿Me he quedado sin opciones por completo? ¿Hay otras cosas que pueden descomprimir este archivo?

johnnietheblack
fuente
¿El alquitrán no está instalado? tar -x
Spuder
acabo de probar tar -x file.zip y parece estar haciendo algo ...
johnnietheblack
@spuder deberías dejar una respuesta en caso de que esto funcione, y te
votaré

Respuestas:

10

No he probado esto, pero hay un zipfilemódulo en la biblioteca estándar de Python desde la versión 1.6, y desde la versión 2.6 ha tenido un extractallmétodo

Usted debe ser capaz de hacer algo como:

  1. Cree un archivo con los siguientes contenidos (edítelo para que se ajuste a su caso de uso).
  2. Guarde el archivo como "unzipfile.py"
  3. Ejecutar con python unzipfile.py

Y se extraerá test.zipa /home/user/directory.

import zipfile

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

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

Alternativamente, BusyBox contiene un "módulo" de descompresión, y si pudiera descargar y ejecutar BusyBox estáticamente vinculado, entonces podría usarlo para descomprimir cosas.

Tom O'Connor
fuente
probé la primera parte de esto y obtuve: El programa 'importar' se puede encontrar en los siguientes paquetes: * imagemagick * graphicsmagick-imagemagick-compat - por cierto ... no te
rechacé
Oh. ¿Sabes que necesitas ejecutarlo a través de Python?
Tom O'Connor
1
GUAU. parece que funcionó ... ¡Tropecé con éxito en modo interactivo!
johnnietheblack
2
Bienvenido a Python. Es impresionante.
Tom O'Connor
2
Ahora puede llamar al módulo directamente desde la línea de comandos python -m zipfile -e monty.zip target-dir/(consulte docs.python.org/2/library/zipfile.html#command-line-interface )
Peter Gibson
11

Si lo ha javainstalado, el jarcomando puede descomprimir un archivo comprimido:

jar xvf file.zip 

Tenga en cuenta que puede instalar Java sin acceso raíz: http://docs.oracle.com/javase/7/docs/webnotes/install/linux/linux-jdk.html

jlliagre
fuente
1
Hoy aprendí.
Tom O'Connor
El programa 'jar' se puede encontrar en los siguientes paquetes: * default-jdk * fastjar * gcj-4.6-jdk * openjdk-6-jdk * gcj-4.5-jdk * openjdk-7-jdk Solicite a su administrador que instale uno de ellos :(
johnnietheblack
1
Ver mi respuesta actualizada.
jlliagre
Estoy un poco preocupado por instalar cualquier cosa en el servidor, por temor a la ira de mi administrador de sistemas, pero definitivamente intentaré esto si es necesario.
johnnietheblack
2

BSD / Mac OSX

La utilidad tar que se entrega con derivados de Mac y BSD admite la extracción de archivos zip del comando tar

tar -xvf foo.zip

tar --version
bsdtar 2.8.3 - libarchive 2.8.3

Debian / RHEL

El archivo tar que se incluye con Ubuntu y otros no admite la extracción de archivos zip. La mejor opción será scp el archivo a una máquina con zip instalado.

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

Prueba de humo

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

Actualizar

Reescribió la respuesta para aclarar que tar -xvf solo funciona en sistemas operativos bsd. Si bien es una buena información, no funcionará en este escenario después de todo.

Spuder
fuente
¿Qué hace el -zxvf?
johnnietheblack
cuando intento eso, obtengo tar: Esto no se ve como un tar archivo tar: Saltando al siguiente encabezado ... ¿eso significa que falló, o aún continúa?
johnnietheblack
tarla capacidad de procesar archivos zip sería una extensión que Ubuntu tar (es decir, GNU tar) no parece proporcionar. -zes para archivos comprimidos, no comprimidos (a menos que sea una extensión muy reciente).
jlliagre
¿eso significa que si subo un gzip funcionaría?
johnnietheblack
Lo hará, pero esa no es tu pregunta ;-)
jlliagre
2

No creo que haya otras formas de descomprimir el archivo en un sistema sin él unzip, pero podría enviar el archivo a otro sistema Linux (con descomprimir instalado o acceso root disponible), descomprimir el archivo allí y, si es necesario, enviar el descomprimido archivo de nuevo al servidor original.

El comando para enviar un archivo de un servidor a otro es scp. La sintaxis para enviar el archivo es:

scp <filename> <username>@<otherhostname>:<portnumber><fullpathtolocation>
e.g.: scp file.zip  [email protected]:2222/home/user/ 

¡Espero que esto ayude!

Luc van Donkersgoed
fuente
0

Copie el archivo a otra máquina, descomprímalo y vuelva a copiar.

dmourati
fuente