Todos los artículos

Cómo comprimir cada archivo o carpeta por separado en el Mac

· 7 min de lectura

Diez carpetas de clientes, y cada cliente debe recibir solo la suya. Una semana de grabaciones para subir una a una. Proyectos antiguos para archivar, un ZIP cada uno. Los seleccionas todos en el Finder, eliges Comprimir y obtienes un único Archivo.zip con todo dentro.

La respuesta corta:

  • El Finder no puede crear un archivo comprimido por ítem. Comprímelos uno a uno, o usa el bucle de Terminal que verás más abajo, que también puedes convertir en una acción rápida.
  • En Folia Files, selecciona los ítems, haz clic derecho, ve a Comprimir y, bajo Cada elemento por separado, elige ZIP, 7Z, TAR.GZ o TAR.XZ. Cada ítem tiene su propio archivo comprimido, justo a su lado.

Qué hace «Comprimir» en el Finder

Haz clic derecho en un solo ítem y elige Comprimir “Atlas”: obtienes un ZIP con su nombre, Atlas.zip para una carpeta, informe.pdf.zip para un archivo. Selecciona varios ítems y la orden pasa a ser Comprimir 3 ítems (o los que hayas seleccionado). Todos van a un único archivo comprimido, Archivo.zip, en la misma carpeta.

No hay ningún ajuste para obtener un archivo comprimido por ítem. O los comprimes uno a uno, o dejas que un pequeño script lo haga.

Comprimir cada ítem por separado en Terminal

macOS incluye ditto, una herramienta de copia que también crea archivos ZIP como el Finder. Un bucle corto la ejecuta una vez por cada ítem de una carpeta:

  1. Abre Terminal (en Aplicaciones › Utilidades).
  2. Escribe cd y un espacio, arrastra la carpeta que contiene los ítems a la ventana de Terminal y pulsa ↩.
  3. Pega estas líneas y pulsa ↩:
for item in ./*; do
  [[ "$item" == *.zip || -e "$item.zip" ]] && continue
  if [[ -d "$item" ]]; then
    ditto -c -k --sequesterRsrc --keepParent "$item" "$item.zip"
  else
    ditto -c -k --sequesterRsrc "$item" "$item.zip"
  fi
done

Cada ítem de la carpeta tiene ahora su ZIP al lado: Atlas.zip junto a la carpeta Atlas, informe.pdf.zip junto a informe.pdf. Ejecuta el bucle en una carpeta que contenga solo lo que quieres archivar, porque cada archivo y cada carpeta que haya en ella recibe un archivo comprimido. Lo que hace cada parte:

  • ./* recorre los ítems de la carpeta, salvo los ocultos (los nombres que empiezan por un punto). El ./ delante evita que un nombre que empieza por un guion se lea como una opción.
  • La segunda línea se salta los propios archivos ZIP y cualquier ítem que ya tenga su archivo comprimido, así que ejecutar el bucle dos veces no rehace ni sobrescribe nada.
  • Una carpeta se comprime con --keepParent, para que al descomprimirla vuelva a salir la carpeta misma. Un archivo se comprime solo: con --keepParent, ditto lo metería en una carpeta con el nombre de la carpeta en la que está.
  • --sequesterRsrc guarda los datos propios del Mac en una carpeta __MACOSX dentro del archivo comprimido, como hacen los ZIP del Finder.

Los nombres con espacios o tildes no dan problemas: cada $item va entre comillas.

La orden tar de macOS escribe los demás formatos. Sustituye el bloque if … fi por una de estas líneas, y .zip en la segunda línea por la misma extensión:

  • TAR.GZ: tar -czf "$item.tar.gz" "$item"
  • TAR.XZ: tar -cJf "$item.tar.xz" "$item"
  • 7Z: tar --format 7zip -cf "$item.7z" "$item"

Si usas Folia Files, haz clic derecho en el fondo de la carpeta y elige Abrir en Terminal: el terminal se abre en esa carpeta y te ahorras el cd. La edición del sitio web tiene además el Terminal de Folia Files, que se abre debajo del panel, como en la imagen.

El mismo bucle ejecutado en el terminal bajo un panel de Folia Files: las carpetas Atlas, Design y la del sitio web tienen cada una su ZIP

Convertir el bucle en una acción rápida

Para tenerlo a un clic derecho en el Finder:

  1. Abre Automator, elige Archivo › Nuevo, selecciona Acción rápida y haz clic en Seleccionar.
  2. En la barra de arriba, ajusta El flujo de trabajo recibe el actual a archivos o carpetas, y en a Finder.app.
  3. Arrastra la acción Ejecutar script de shell desde la biblioteca al flujo de trabajo. Comprueba que Shell indica /bin/zsh, ajusta Pasar datos de entrada a como argumentos y sustituye su texto por el bucle de arriba, con la primera línea cambiada a for item in "$@"; do (los ítems en los que hiciste clic derecho).
  4. Guárdala con ⌘S con un nombre como «Comprimir cada uno».

Ya aparece en Acciones rápidas cuando haces clic derecho en archivos en el Finder. Ajustada a Finder.app, no aparece en los menús de las demás apps, por un motivo que se explica en por qué tu acción rápida de Automator solo aparece en el Finder (la edición del sitio web de Folia Files la muestra igualmente).

En Folia Files: Comprimir › Cada elemento por separado

Folia Files lo hace desde su menú contextual, en todas las vistas:

  1. Selecciona los ítems: ⌘-clic o ⇧-clic, o ⌘A para todos.
  2. Haz clic derecho en uno de ellos y ve a Comprimir.
  3. Los cuatro formatos de arriba crean un solo archivo comprimido con toda la selección, Archivo comprimido.zip, como el Finder. Bajo Cada elemento por separado, los mismos cuatro formatos crean un archivo comprimido por ítem. Esa segunda parte aparece en cuanto hay dos o más ítems seleccionados.

El submenú Comprimir sobre tres carpetas seleccionadas: ZIP, 7Z, TAR.GZ y TAR.XZ, y los mismos formatos bajo Cada elemento por separado

Lo que obtienes:

  • Un archivo comprimido junto a cada ítem, con su nombre: Atlas.zip, Design.zip… Un archivo conserva su extensión en el nombre, Notas.md.zip, como con el Finder.
  • Nada se sustituye. Si Atlas.zip ya existe, el nuevo se llama Atlas 2.zip.
  • Ítems de varias carpetas. En la vista Árbol puedes seleccionar ítems de distintas subcarpetas: cada archivo comprimido queda junto a su propio ítem.
  • Los nuevos archivos comprimidos, seleccionados en cuanto están listos, para arrastrarlos a un correo o a una carpeta de la nube o de un servidor abierta en el otro panel.

Comprimir está junto a las demás herramientas de archivos del menú contextual, descritas en la página de herramientas de archivos.

Seguir, pausar o cancelar en Operaciones

Folia Files crea los archivos comprimidos uno tras otro, no todos a la vez: varios compresores a la vez solo se pelearían por el disco. Cada archivo comprimido es una línea en Operaciones, el botón de la barra de herramientas que también sigue las copias y los traslados (o Ventana › Operaciones en curso, ⌃⌘O):

  • Comprimiendo en .zip (o .7z, .tar.gz…), con una barra de progreso basada en el tamaño medido antes de empezar, el nombre del archivo que se está añadiendo, lo hecho sobre el total, la velocidad y el tiempo restante. Los que esperan su turno indican Preparando….
  • El botón de pausa detiene el compresor donde está, y Reanudar continúa desde ahí. Los archivos comprimidos siguientes esperan.
  • El botón ✕ (Cancelar) detiene un archivo comprimido. Cada uno se escribe con un nombre oculto junto a los ítems y solo recibe su nombre real cuando está completo: uno cancelado no deja nada, y un archivo a medio escribir nunca parece terminado. Los ya creados se quedan y los demás siguen.

¿ZIP, 7Z, TAR.GZ o TAR.XZ?

  • ZIP se abre con un doble clic en un Mac o en un PC con Windows, sin instalar nada. Es el formato para clientes, compañeros y cualquiera cuyo ordenador no conoces.
  • 7Z suele dar archivos más pequeños que ZIP, sobre todo con documentos, texto y código. No todos los ordenadores lo abren sin una app adicional: resérvalo para quien la tenga, o para tus propios archivos.
  • TAR.GZ es la costumbre de los servidores Linux y de los desarrolladores. Conserva tal cual los permisos Unix y los enlaces simbólicos.
  • TAR.XZ suele ser más pequeño que TAR.GZ, y más lento de crear.

Las fotos, los vídeos y la música ya están comprimidos: ningún formato los reduce mucho. Comprímelos para mantenerlos juntos o para enviarlos, no para ahorrar espacio.

Volver a abrirlos

En Folia Files, un doble clic en un archivo ZIP, 7Z o TAR lo abre en el panel como una carpeta, en solo lectura; Extraer aquí lo descomprime junto al archivo y Extraer en, en otra carpeta. Cómo abrir un archivo ZIP sin descomprimirlo cuenta los detalles.

En resumen

  • Finder: un único Archivo.zip para toda la selección, selecciones lo que selecciones.
  • Terminal: el bucle de ditto de arriba, o tar para TAR.GZ, TAR.XZ y 7Z; el mismo bucle cabe en una acción rápida de Automator.
  • Folia Files: Comprimir › Cada elemento por separado y luego el formato. Un archivo comprimido junto a cada ítem, seguido en Operaciones, y nada que quede atrás si cancelas.