70 votos

Comprimir sin .DS_Store y __MACOSX

Cuando comprimo una carpeta o archivo haciendo clic derecho en el menú de Mac OS X, el archivo comprimido contiene las carpetas .DS_Store y __MACOSX. Como comparto el archivo comprimido en línea para su descarga, los usuarios de Windows intentan buscar equivocadamente el archivo en la carpeta __MACOSX.

Necesito tener una opción de archivo comprimido más limpia. No quiero incluir la carpeta .DS_Store y __MACOSX, sino solo el archivo o carpeta en el archivo comprimido.

Todo lo que he encontrado es CleanArchiver pero es una aplicación con interfaz gráfica. Realmente lleva tiempo y tengo muchos archivos para comprimir. Estoy buscando una solución a través del menú contextual si es posible.

¿Existe alguna solución que puedas recomendar para comprimir de forma limpia?

0 votos

En mi caso estaba empaquetando los archivos para usar en Cloud Functions en GCP. Los archivos ocultos causan error

95voto

Rick_Weber Puntos 21

Puedes usar el comando zip en Terminal para comprimir los archivos sin los archivos .DS_Store, __MACOSX y otros archivos .*.

  1. Abre Terminal (busca terminal en spotlight)
  2. Navega a la carpeta que deseas comprimir utilizando el comando cd
  3. Pega esto:

    zip -r dir.zip . -x '**/.*' -x '**/__MACOSX'

    Si deseas filtrar solo los archivos .DS_Store y mantener otros archivos ocultos, utiliza:

    zip -r dir.zip . -x '**/.DS_Store'

Ejemplo

Supongamos que tienes una carpeta en tu escritorio llamada Folder con cosas para comprimir.
Abre terminal y escribe los siguientes comandos:

  1. cd Desktop/Folder

  2. zip -r dir.zip . -x '.*' -x '__MACOSX'

Ahora tienes un archivo llamado dir.zip sin los archivos __MACOSX y .* en la carpeta Folder en tu escritorio.

1 votos

+1 ¿Puedes envolver eso en un servicio de automatización?

6 votos

Técnicamente hablando, si usas zip para crear el archivo zip, "__MACOSX/" no se creará en primer lugar, por lo que todo lo que realmente necesitas es zip -r dir.zip .. Sin embargo, si "__MACOSX/" de alguna manera se cuela ahí, tu solución se deshará de ello.

5 votos

También puedes verificar fácilmente que tu archivo zip no contiene __MACOSX escribiendo en la consola zipinfo dir.zip

25voto

Edward Falk Puntos 123

Solo alguna información adicional ...

Según entiendo, __MACOSX es un subdirectorio creado artificialmente por las herramientas GUI de Mac para almacenar metadatos como atributos extendidos que no se pueden guardar normalmente en un archivo zip.

Si utilizas las herramientas GUI de Mac para descomprimir el archivo zip, entonces las herramientas sabrán qué hacer con __MACOSX y el directorio no se descomprimirá realmente.

Los problemas surgen cuando envías tu archivo .zip a usuarios de Windows o Linux, o simplemente utilizas el programa unzip de propósito general para descomprimirlos. Esas herramientas no sabrán que __MACOSX es especial, y simplemente lo descomprimirán.

La opción más simple es utilizar zip para empaquetar tu archivo zip en lugar de la herramienta integrada de Mac. zip no creará __MACOSX y tu problema estará resuelto. (Perderás los metadatos en el proceso, pero probablemente no los querías de todos modos.)

zip -r dir.zip dir

Si es demasiado tarde y ya tienes un archivo zip con __MACOSX, aún puedes eliminarlo con:

zip -d foo.zip __MACOSX .DS_Store

Por último, la respuesta aceptada es la mejor porque si por alguna razón __MACOSX realmente existe en tu directorio (por ejemplo, porque previamente utilizaste unzip para crearlo), la opción -x evitará que se empaquete.

2 votos

.DS_Store sigue siendo creado al usar zip -r dir.zip.

0 votos

Sí, personalmente también lo encuentro molesto. Esto es similar a, pero no es lo mismo que las cosas almacenadas en __MACOSX

1 votos

12voto

Joe Liversedge Puntos 2134

Prueba Keka. Viene con una opción para excluir .DS_Store

introducir descripción de la imagen aquí

6voto

Raj Puntos 61

Basado en la respuesta de itunes. También necesitaba eliminar DS_Store en directorios anidados de la siguiente manera.

zip -r my.zip . -x "**/.DS_Store"

4voto

Tetsujin Puntos 23061

Solo uno que realmente he usado es BetterZip [$20]

Es una aplicación GUI, pero tiene soporte para Applescript y Services, con los cuales puedes ejecutar ajustes preestablecidos con tu configuración predeterminada, incluyendo la omisión de archivos específicos de Mac como .DS_Store & __MACOSX. Posiblemente valga la pena echarle un vistazo.

Desde la Ayuda de BetterZip...

BetterZip soporta dos servicios: uno para extraer y otro para crear archivos. Puedes configurar lo que harán los servicios de BetterZip con ajustes preestablecidos.

Para usar un servicio, selecciona uno o más archivos o carpetas en el Finder y elige Comprimir con BetterZip o Extraer con BetterZip desde el menú Servicios del Finder o el submenu Servicios en el menú contextual.

Incluso puedes configurar atajos de teclado para los servicios de BetterZip, por ejemplo, ^⌥⌘C para comprimir y ^⌥⌘E para extraer. Para configurar atajos para servicios, ve a Preferencias del Sistema > Teclado > Atajos de Teclado y elige Servicios en la tabla izquierda. En la tabla derecha, desplázate hasta Archivos y Carpetas, elige Comprimir con BetterZip y presiona ↩. Aparecerá un campo de texto editable. Presiona el atajo deseado.

Uno de mis ajustes preestablecidos de Guardar...

ingresar descripción de la imagen aquí

0 votos

Esa es una buena opción de GUI para los usuarios de Setapp.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X