Tengo un directorio de archivos ZIP (creado en una máquina con Windows). Puedo descomprimirlos manualmente usando unzip filename
, pero ¿cómo puedo descomprimir todos los archivos ZIP en la carpeta actual a través del shell?
Usando Ubuntu Linux Server.
Solo ponga algunas citas para escapar del comodín:
fuente
El siguiente script bash extrae todos los archivos zip en el directorio actual en nuevos directorios con el nombre del archivo zip, es decir:
Los siguientes archivos:
Se extraerá a:
Script de shell:
fuente
"
al nombre del archivodescomprimir * .zip, o si están en subcarpetas, entonces algo como
fuente
gzip'ed
archivos, usegunzip -rfk .
para descomprimir recursivamente dentro de las carpetas respectivasDescomprima todos los
.zip
archivos y almacene el contenido en una nueva carpeta con el mismo nombre y en la misma carpeta que el.zip
archivo:Esta es una extensión de la respuesta de @ phatmanace y aborda el comentario de @ RishabhAgrahari :
fuente
gzip'ed
archivos, usegunzip -rfk .
para descomprimir recursivamente dentro de las carpetas respectivasfind: illegal option -- n
usar UnZip 6.00 ? ¿Alguien más?find . -name '*.zip' -exec sh -c 'unzip -d "${1%.*}" "$1"' _ {} \;
Olvidó el listado del directorio.Esto descomprimirá todos los archivos zip en nuevas carpetas nombradas con los nombres de los archivos zip.
a.zip
b.zip
c.zip
se descomprimirá ena
b
c
carpetas respectivamente.fuente
aunpack -e *.zip
, conatool
instalado. Tiene la ventaja de que trata los errores de forma inteligente y siempre se descomprime en subdirectorios a menos que el archivo zip contenga solo un archivo. Por lo tanto, no hay peligro de contaminar el directorio actual con una gran cantidad de archivos, ya que existeunzip
un zip sin estructura de directorios.fuente
En cualquier shell POSIX, esto se descomprimirá en un directorio diferente para cada archivo zip:
fuente
for file in *.zip; do unzip "$file" -d "${file%.zip}"; done
Utilizar este:
fuente
for file in 'ls *.zip'; do unzip "${file}" -d "${file:0:-4}"; done
fuente
for file in *.zip; do ...
bien?Si los archivos son
gzip'd
. Entonces solo usa:del directorio raíz para extraer archivos de forma recursiva en los directorios respectivos manteniendo los originales (o eliminar
-k
para eliminarlos)fuente
Esta es una variante de respuesta Pedro Lobito usando Cómo recorrer un directorio de forma recursiva para eliminar archivos con ciertas enseñanzas de extensiones :
fuente
fuente
Para descomprimir todos los archivos en un directorio simplemente escriba este cmd en la terminal:
fuente
Utilizar
descomprimir una carpeta en Linux
fuente