Cuando comprimo una carpeta o un archivo haciendo clic con el botón derecho en el menú de Mac OS X, el archivo archivado contiene las carpetas .DS_Store y __MACOSX . Debido a que comparto el archivo archivado en línea para descargarlo, los usuarios de Windows intentan por error buscar el archivo en la carpeta __MACOSX .
Necesito tener una opción de archivo más limpia. No quiero incluir la carpeta .DS_Store y __MACOSX , sino solo el archivo o la carpeta en el archivo comprimido.
Todo lo que encontré es CleanArchiver pero es una aplicación GUI. Realmente toma tiempo y tengo muchos archivos para comprimir. Estoy buscando una solución por menú contextual si es posible.
¿Hay alguna solución que pueda recomendar para una compresión limpia?
Puede usar el comando zip en la Terminal para comprimir los archivos sin el .DS_Store
y __MACOSX
otros .*
archivos.
cd
comandozip -r dir.zip . -x ".*" -x "__MACOSX"
Digamos que tiene una carpeta en su escritorio llamada Folder
con cosas para comprimir.
Abra la terminal y escriba los siguientes comandos:
cd Desktop/Folder
zip -r dir.zip . -x ".*" -x "__MACOSX"
Ahora tiene un archivo llamado dir.zip
sin __MACOSX
y .*
archivos en la carpeta Folder
de su escritorio.
zip
para crear el archivo zip, "__MACOSX/" no se creará en primer lugar, por lo que todo lo que realmente necesita es zip -r dir.zip .
. Sin embargo, si "__MACOSX/" de alguna manera se coló allí, su solución lo eliminará.zipinfo dir.zip
Solo un poco de información extra...
Tengo entendido que __MACOSX es un subdirectorio creado artificialmente por las herramientas de la GUI de Mac para contener metadatos como atributos extendidos que normalmente no se pueden guardar en un archivo zip.
Si usa las herramientas de la GUI de Mac para descomprimir el archivo zip, las herramientas sabrán qué hacer con __MACOSX y el directorio no se descomprimirá.
Los problemas ocurren cuando envía su archivo .zip a usuarios de Windows o Linux, o simplemente usa el unzip
programa de propósito general para descomprimirlo. Esas herramientas no sabrán que __MACOSX es especial y simplemente lo desempaquetarán.
La opción más simple es usar zip
para empaquetar su archivo zip en lugar de la herramienta integrada de Mac. zip
no creará __MACOSX y su problema está resuelto. (Perderá los metadatos en el proceso, pero probablemente no los quería de todos modos).
zip -r dir.zip dir
Si es demasiado tarde y ya tiene un archivo zip con __MACOSX, aún puede eliminarlo con:
zip -d foo.zip __MACOSX .DS_Store
Finalmente, la respuesta aceptada es la mejor porque si por alguna razón __MACOSX realmente existe en su directorio (por ejemplo, porque usted solía unzip
crearlo anteriormente), la opción -x evitará que se empaquete.
Prueba con Keka . Viene con una opción para excluir .DS_Store
El único que realmente he usado es BetterZip [$20]
Es una aplicación GUI, pero es compatible con Applescript & Services, con la que puede ejecutar ajustes preestablecidos con su configuración predeterminada, incluida la omisión de archivos específicos de Mac como .DS_Store y __MACOSX. Posiblemente valga la pena echarle un vistazo.
Desde la ayuda de BetterZip...
BetterZip admite dos servicios: uno para extraer y otro para crear archivos. Puede configurar lo que harán los servicios de BetterZip con los ajustes preestablecidos.
Para usar un servicio, seleccione uno o más archivos o carpetas en el Finder y elija Comprimir con BetterZip o Extraer con BetterZip desde el menú Finder > Servicios o el submenú Servicios en el menú contextual.
Incluso puede establecer métodos abreviados de teclado para los servicios de BetterZip, por ejemplo, ^⌥⌘C para comprimir y ^⌥⌘E para extraer. Para configurar accesos directos para servicios, vaya a Preferencias del sistema > Teclado > Accesos directos de teclado y elija Servicios en la tabla de la izquierda. En la tabla de la derecha, desplácese hasta Archivos y carpetas, elija Comprimir con BetterZip y presione ↩. Aparecerá un campo de texto editable. Presione el atajo deseado.
Uno de mis guardados preestablecidos...
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"
crianbhu