renombrar otra mover descomprimir crear como carpeta archivos archivo linux shell wildcard unzip

otra - mover archivos en linux



Descomprimir todos los archivos en un directorio (14)

(no probado) pero este enlace sugiere:

descomprimir / *. zip

Tengo un directorio de archivos ZIP (creado en una máquina con Windows). Puedo descomprimirlos manualmente usando el unzip filename , pero ¿cómo puedo descomprimir todos los archivos ZIP en la carpeta actual a través del shell?

Usando Ubuntu Linux Server.


Descomprima todos los archivos .zip y almacene el contenido en una nueva carpeta con el mismo nombre y en la misma carpeta que el archivo .zip :

find -name ''*.zip'' -exec sh -c ''unzip -d "${1%.*}" "$1"'' _ {} /;

Esta es una extensión de la respuesta de @ phatmanace y aborda el comentario de @RishabhAgrahari :

Esto extraerá todos los archivos zip en el directorio actual, ¿qué ocurre si quiero que los archivos zip (presentes en las subcarpetas) se extraigan en las subcarpetas respectivas?


En cualquier shell POSIX, este se descomprimirá en un directorio diferente para cada archivo zip:

for file in *.zip do directory="${file%.zip}" unzip "$file" -d "$directory" done


Esta es una variante de la answer de Pedro Lobito usando Cómo recorrer un directorio recursivamente para eliminar archivos con ciertas extensiones de enseñanzas:

shopt -s globstar root_directory="." for zip_file_name in **/*.{zip,sublime/-package}; do directory_name=`echo $zip_file_name | sed ''s//./(zip/|sublime/-package/)$//''` printf "Unpacking zip file /`$root_directory/$zip_file_name/`.../n" if [ -f "$root_directory/$zip_file_name" ]; then mkdir -p "$root_directory/$directory_name" unzip -o -q "$root_directory/$zip_file_name" -d "$directory_name" # Some files have the executable flag and were not being deleted because of it. # chmod -x "$root_directory/$zip_file_name" # rm -f "$root_directory/$zip_file_name" fi done


Extrae todos los archivos zip en el directorio actual en nuevos directorios con el nombre del archivo zip.

ex, los siguientes archivos:

myfile1.zip myfile2.zip

se extraerá a:

./myfile1/files... ./myfile2/files...

Script de Shell:

#!/bin/sh for zip in *.zip do dirname=`echo $zip | sed ''s//.zip$//''` if mkdir "$dirname" then if cd "$dirname" then unzip ../"$zip" cd .. # rm -f $zip # Uncomment to delete the original zip file else echo "Could not unpack $zip - cd failed" fi else echo "Could not unpack $zip - mkdir failed" fi done


Para descomprimir todos los archivos en un directorio simplemente escriba este cmd en la terminal:

unzip ''*.zip''


Solo ponga algunas citas para escapar del comodín:

unzip "*.zip"


Utilizar

sudo apt-get install unzip unzip file.zip -d path_to_destination_folder

para descomprimir una carpeta en Linux


Utilizar esta:

for file in `ls *.Zip`; do unzip ${file} -d ${unzip_dir_loc} done


descomprimir * .zip, o si están en subcarpetas, algo así como

find . -name "*.zip" -exec unzip {} /;


aunpack -e *.zip , con atool instalado. Tiene la ventaja de que trata inteligentemente los errores y siempre desempaqueta en subdirectorios, a menos que el archivo zip contenga solo un archivo. Por lo tanto, no existe el peligro de contaminar el directorio actual con una gran cantidad de archivos, como unzip con la unzip en un archivo comprimido sin estructura de directorios.


for file in ''ls *.zip''; do unzip "${file}" -d "${file:0:-4}"; done


for i in *.zip; do newdir="${i:0:-4}" && mkdir "$newdir" unzip "$i" -d "$newdir" done

Esto descomprimirá todos los archivos zip en nuevas carpetas nombradas con los nombres de archivo de los archivos zip.

a.zip b.zip c.zip se descomprimirá en a carpeta b c respectivamente.


for i in `ls *.zip`; do unzip $i; done