Skip to content

Instantly share code, notes, and snippets.

@SrShark
Last active November 12, 2024 12:40
Show Gist options
  • Select an option

  • Save SrShark/4516a635ac1fafa6c3403f1baaaa1b81 to your computer and use it in GitHub Desktop.

Select an option

Save SrShark/4516a635ac1fafa6c3403f1baaaa1b81 to your computer and use it in GitHub Desktop.

Comprimir carpeta a zip.

Para comprimir un directorio completo a un archivo .zip y excluir todas las carpetas node_modules dentro de los proyectos, puedes usar el siguiente comando en Ubuntu:

zip -r nombre_del_archivo.zip directorio_principal -x '*/node_modules/*'

Explicación del comando:

  • zip -r nombre_del_archivo.zip directorio_principal: Comprime el directorio_principal de forma recursiva en un archivo llamado nombre_del_archivo.zip.
  • -x '*/node_modules/*': Excluye todas las carpetas node_modules y su contenido en cualquier subdirectorio del directorio_principal. Este comando comprime todo el contenido del directorio, ignorando cualquier carpeta node_modules sin importar en qué nivel esté ubicada.

Comprir carpetas en archivos zip separados.

Para comprimir cada carpeta dentro de un directorio en archivos .zip separados y excluir las carpetas node_modules, puedes usar un bucle for en Bash. Este comando crea un archivo .zip independiente para cada carpeta y omite cualquier node_modules en su interior:

for dir in */; do
    dir_name=$(basename "$dir")
    zip -r "${dir_name}.zip" "$dir" -x "*/node_modules/*"
done

Explicación del comando:

  • for dir in */; do ... done: Itera sobre cada carpeta en el directorio actual.
  • dir_name=$(basename "$dir"): Obtiene el nombre de la carpeta actual sin la ruta completa.
  • zip -r "${dir_name}.zip" "$dir": Crea un archivo .zip con el nombre de la carpeta actual.
  • -x "*/node_modules/*": Excluye las carpetas node_modules de cada proyecto durante la compresión.

Este script comprimirá cada carpeta en un archivo .zip separado y excluirá cualquier subcarpeta node_modules que encuentre.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment