Cómo descomprimir un archivo zip desde el Terminal?

Acabo de descargar un .archivo zip de Internet. Quiero usar la terminal para descomprimir el archivo. ¿Cuál es la forma correcta de hacerlo?

Si el unzip el comando aún no está instalado en su sistema, luego ejecute:

sudo apt-get install unzip

Después de instalar la utilidad de descompresión, si desea extraer a una carpeta de destino en particular, puede usar:

unzip file.zip -d destination_folder

Si los directorios de origen y destino son los mismos, simplemente puede hacer:

unzip file.zip

Simplemente puede usar unzip.

Instálalo:

apt-get install unzip

Y úsalo:

cd /path/to/fileunzip file.zip

Una herramienta más útil es 7z, que comprime y descomprime una variedad de formatos de compresión, en particular lzma, generalmente el protocolo que ofrece las tasas de compresión más altas.

Este comando instala 7z:

sudo apt-get install p7zip-full

Este comando enumera el contenido del archivo zip:

7z l zipfile.zip

Este comando extrae el contenido del zip:

7z x zipfile.zip

Puedes usar:

unzip file.zip -d somedir

para extraer a yourpath/somedir

Si desea extraer a una ruta absoluta, utilice

sudo unzip file.zip -d /somedir

Uso de herramientas de scripting: Perl y Python

Muchas respuestas aquí mencionan herramientas que requieren instalación, pero nadie ha mencionado que dos de los lenguajes de scripting de Ubuntu, Perl y Python, ya vienen con todos los módulos necesarios que le permiten descomprimir un archivo zip, lo que significa que no necesita instalar nada más. Simplemente use cualquiera de los dos scripts que se presentan a continuación para hacer el trabajo. Son bastante cortos e incluso se pueden condensar en un comando de una sola línea si quisiéramos.

Pitón

#!/usr/bin/env python3import sysfrom zipfile import PyZipFilefor zip_file in sys.argv[1:]:    pzf = PyZipFile(zip_file)    pzf.extractall()

Uso:

./pyunzip.py master.zip 

o

python3 pyunzip.py master.zip

Perl

#!/usr/bin/env perluse Archive::Extract;foreach my $filepath (@ARGV){    my $archive = Archive::Extract->new( archive => $filepath );    $archive->extract;}

Uso:

./perlunzip master.zip

o

perl perlunzip.pl master.zip

Véase también

Si los directorios de origen y destino son los mismos, simplemente puede hacer:

unzip filename.zip

Yo prefiero bsdtar a unzip/zip. Para extraer, son bastante similares:

bsdtar -x -f /one/two/three/four.zip -C /fiveunzip /one/two/three/four.zip -d /five

Sin embargo para comprimir, bsdtar ganar. Digamos que tienes esta entrada:

/one/two/three/alfa/four.txt/one/two/three/bravo/four.txt

y quiero esto en el archivo zip:

alfa/four.txtbravo/four.txt

Esto es fácil con bsdtar:

bsdtar -a -c -f four.zip -C /one/two/three alfa bravo

zip no tiene el -d opción como descomprimir, por lo que no tiene forma de lograr lo anterior a menos que cd primero.

Aquí está la descripción detallada de las opciones que encuentro útiles:

Comando: descomprimir - [opción] zip-path.               -d un directorio opcional en el que extraer archivos-l Lista de archivos de almacenamiento.               -P contraseña Utilizar contraseña para descifrar entradas de archivo zip cifradas (si las hay).               - archivos de archivo de prueba t con comprobación de redundancia cíclica.                 - u Actualice los archivos existentes.                 - z comentario de archivo

Siga estas instrucciones: http://www.codebind.com/linux-tutorials/unzip-zip-file-using-terminal-linux-ubuntu-linux-mint-debian/

Instalar descomprimir

Entonces, en primer lugar, necesitamos instalar unzip en nuestro sistema si no está instalado. el comando descomprimir se utiliza para extraer archivos del archivo AZip.

Ejecute el siguiente comando para instalar unzip

sudo apt-get install unzip

unzip Sintaxis

$ unzip [-aCcfjLlnopqtuvy] [-d dir] zipfile

Ahora sigue los pasos a continuación:

Descomprimir Archivo

OPCIÓN 1 - Si el Archivo Zip está en el mismo directorio / carpeta en el que se encuentra tu terminal y queremos extraerlo en el directorio de trabajo actual.

Utilice el siguiente comando para lograr el escenario descrito anteriormente

sudo unzip zip_file_name.zip

si el archivo zip está protegido con alguna contraseña, utilice el siguiente comando :

sudo ubzip -P zip_file_name.zip

Asegúrese de usar -P (P mayúscula) no -p porque son diferentes opciones.

OPCIÓN 2 - Si el archivo zip no está presente en el mismo directorio y queremos extraer / descomprimir el archivo en un directorio diferente.

Utilice el siguiente comando para lograr el escenario descrito anteriormente

sudo unzip path/filename.zip -d another_path_or_same_path

si no usamos la opción-d, el archivo se extraerá al directorio de trabajo actual.

Y si el archivo zip está protegido con contraseña, también podemos usar -P.

usar el comando tar en Linux / Unix

tar es un acrónimo de archivo de cinta. el comando tar se utiliza paramanipula archivos en Linux / Unix. Los administradores de sistemas usan tarcommand con frecuencia para extraer un montón de archivos o directorios en un archivo altamente comprimido que se llama tarball o tar, bzip ygzip en Linux/Unix sistema.

sintaxis de tar

tar [OPTION...] [FILE]...

O

banderas requeridas de alquitrán

tar {-r|-t|-c|-x|-u}

tar Indicadores opcionales

tar {one of the required Flags} [ -d ][-B] [ -F ] [ -E ] [ -i ] [-h ] [ -l ] [ -m ] [ -o ] [ -p ] [ -w] [ -s ] [ -U ] [ -v ][-Number] [-b Blocks] [-f Archive]

Ejemplos

Cree un Archivo de Almacenamiento tar Comprimiendo un Directorio o un Solo Archivo

El siguiente comando de terminal creará un .tar archivo llamadosample_dir.tar con un directorio /home/codebind/sample_dir osample_dir en el directorio de trabajo actual.

ripon@ripon:~$  tar -cvf sample_dir.tar sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tar

enter image description here

Esto es lo que realmente significan esas banderas (-cvf)

-c, --create– crear un nuevo archivo

-x, --extract, --get- extraer archivos de un archivo

-f, --file ARCHIVE- usar archivo de almacenamiento o ARCHIVO de dispositivo

Crear tar.gz o tgz Archivo Comprimido comprimiendo un Directorio o un Solo Archivo

El siguiente comando de terminal creará un .tar.gz archivo llamadosample_dir.tar.gz con un directorio /home/codebind/sample_dir osample_dir en el directorio de trabajo actual.

Observe que hemos agregado un indicador adicional-z al comando.Esto es lo que realmente significa la bandera-z

-z, --gzip, --gunzip --ungzip- Comprimir el archivo con gzip

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tar.gz

enter image description here

El siguiente comando creará un .archivo tgz. Uno de estos para notar istar.gz y tgz son similares.

ripon@ripon:~$ tar -cvzf sample_dir.tgz sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ lssample_dir sample_dir.tgz

Comprimir Varios Directorios o Archivos a la Vez

Digamos, por ejemplo, que queremos comprimir el sample_dir directorio,el java_test directorio, y el abc.py archivo a un archivo tar llamadosample_dir.tar.gz.

Ejecute el siguiente comando para lograr el objetivo anterior.

ripon@ripon:~$ tar -cvzf sample_dir.tar.gz sample_dir java_test abc.pysample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputjava_test/java_test/HelloCV.javaabc.pyripon@ripon:~$ lssample_dir java_test abc.py sample_dir.tar.gz

enter image description here

Crear .bzip2 Archivo Comprimido comprimiendo un Directorio o un Solo Archivo

ripon@ripon:~$ tar -cjvf sample_dir.tar.bz2 sample_dirsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ 

Observe que hemos agregado una bandera adicional -f al comando.Esto es lo que es la bandera -f en realidad quiero decir

-f, --file ARCHIVE- usar archivo de almacenamiento o ARCHIVO de dispositivo

enter image description here

Extraer .tar Archivo

Podemos extraer o descomprimir el archivo comprimido utilizando el comando tar. El siguiente comando extraerá el contenido de sample_dir.tar al directorio actual.

ripon@ripon:~$ tar -xvf sample_dir.tarsample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ 

enter image description here

El siguiente comando extraerá o untará archivos en el directorio especificado, es decir, /home/codebind/dir_name en este caso.

ripon@ripon:~$ tar -xvf sample_dir.tar -C /home/codebind/dir_namesample_dir/sample_dir/main.cppsample_dir/sample.pngsample_dir/outputripon@ripon:~$ 

hemos añadido bandera extra -C al comando.Esto es lo que la bandera -Cen realidad quiero decir

-C, --directory DIR - cambiar al directorio DIR

enter image description here

Extraiga todos los archivos de la carpeta actual, puede usar: descomprimir \*.Postal

@burtsevyg la barra invertida no es necesaria allí. Hará que shell trate \ * ' como un símbolo de estrella literal. Simplemente use ' descomprimir *.zip 'para hacer que shell expanda' * ' a todos los archivos que terminan en.Postal`

Usar * ' solo no funcionó para mí. Causó errores de 'nombre de archivo no coincidente'.*` hizo el trabajo.