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