GNU/Linux >> Tutoriales Linux >  >> Linux

¿Comando para comprimir varios directorios en archivos zip individuales?

Tengo un solo directorio que contiene docenas de directorios dentro.

Soy nuevo en la línea de comandos y estoy luchando por encontrar un comando que comprima cada subdirectorio en un archivo subdirectorio.zip único.

Entonces, al final, mi directorio principal se llenará con todos mis subdirectorios originales, más el correspondiente .zip archivos que contienen el contenido comprimido de cada subdirectorio.

¿Es posible algo así? Si es así, muéstrame cómo se hace.

Respuesta aceptada:

Puedes usar este ciclo en bash :

for i in */; do zip -r "${i%/}.zip" "$i"; done

i es el nombre de la variable de bucle. */ significa cada subdirectorio del directorio actual e incluirá una barra inclinada final en esos nombres. Asegúrate de cd al lugar correcto antes de ejecutar esto. "$i" simplemente nombra ese directorio, incluida la barra inclinada final. Las comillas aseguran que los espacios en blanco en el nombre del directorio no causen problemas. ${i%/} es como $i pero con la barra inclinada final eliminada, por lo que puede usarla para construir el nombre del archivo zip.

Si quieres ver cómo funciona esto, incluye un echo antes del zip y verá los comandos impresos en lugar de ejecutados.

Ejecución paralela

Para ejecutarlos en paralelo, puede usar & :

for i in */; do zip -0 -r "${i%/}.zip" "$i" & done; wait

Usamos wait para indicarle al shell que espere a que finalicen todas las tareas en segundo plano antes de salir.

Tenga en cuenta que si tiene demasiadas carpetas en su directorio actual, puede sobrecargar su computadora, ya que este código no limita la cantidad de tareas paralelas.


Linux
  1. Copiar archivos y directorios en Linux

  2. Shell Script:¿Ordenar archivos en directorios y subdirectorios?

  3. Linux Bash:mueva varios archivos diferentes al mismo directorio

  4. cp solo archivos, saltando directorios

  5. Dividir una imagen dd en varios archivos

Comando Ls en Linux (Lista de archivos y directorios)

Cómo comprimir archivos y directorios en Linux

Comando Renombrar en Linux (Renombrar Múltiples Archivos)

Comprimir y archivar archivos y directorios

Cómo contar archivos en el directorio en Linux

Conceptos básicos de la línea de comandos de Linux:trabajar con archivos y directorios