¿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?


¿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.


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


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.


¿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  user@server.example.com:2222/home/user/ 

¡Espero que esto ayude!


0

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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.