GNU/Linux >> Tutoriales Linux >  >> Linux

Cree una carpeta dedicada para cada archivo zip en un directorio y extraiga los archivos zip

unzip file.zip -d xxx extraerá archivos al directorio xxx, y se creará xxx si no está allí. Puede consultar la página del manual para obtener más detalles.

La siguiente línea awk debería hacer el trabajo:

ls *.zip|awk -F'.zip' '{print "unzip "$0" -d "$1}'|sh

Ver la prueba abajo,

nota que eliminé |sh al final, ya que mis zips son archivos falsos; Solo quiero mostrar aquí la línea de comando generada.

kent$  ls -l
total 0
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 001.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 002.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 003.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 004.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 005.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 006.zip
-rw-r--r-- 1 kent kent 0 Nov 12 23:10 007.zip

kent$  ls *.zip|awk -F'.zip' '{print "unzip "$0" -d "$1}'
unzip 001.zip -d 001
unzip 002.zip -d 002
unzip 003.zip -d 003
unzip 004.zip -d 004
unzip 005.zip -d 005
unzip 006.zip -d 006
unzip 007.zip -d 007

"extraer aquí" es simplemente una característica de lo que sea unzip envoltorio que está utilizando. unzip solo extraerá lo que realmente está en el archivo. Probablemente no haya una forma más sencilla que un script de shell. Pero sed , awk etc. no son necesarios para esto si tiene un shell compatible con POSIX:

for f in *.zip; do unzip -d "${f%*.zip}" "$f"; done

(NO DEBE escapar del * o la expansión del nombre de ruta no tendrá lugar). Tenga en cuenta que si el archivo ZIP contiene un directorio, como los archivos de Eclipse (que siempre contienen eclipse/ ), terminarías con ./eclipse*/eclipse/eclipse.ini En todo caso. Agregar echo antes de unzip para un ensayo.


p7zip , la versión de línea de comandos de 7zip hace el trabajo

7z x '*.zip' -o'*'

En debian y ubuntu, debe instalar p7zip-full .


Linux
  1. Para cambiar el permiso de directorio y archivos

  2. ¿Crear un archivo Tar de un directorio, a excepción de los archivos ocultos?

  3. ¿Cómo crear varios zips desde un directorio que contiene un millón de archivos Xml?

  4. ¿Recorrer una carpeta y listar archivos?

  5. Trabajar con archivos ZIP en Linux

Cómo comprimir y descomprimir archivos en Ubuntu

Cómo extraer archivos a una carpeta en particular en Linux

Cómo comprimir archivos y carpetas en Linux [Consejo para principiantes]

Comprimir y archivar archivos y directorios

Cómo comprimir archivos y carpetas en Linux

Linux / Carpeta y /carpeta raíz