Comprimir carpetas en una Mac, sin .DS_Store

63

¿Hay alguna forma de deshacerse de .DS_Store al comprimir una carpeta en una Mac?

Trabajo en una Mac y envío trabajo a clientes en formato zip, pero siempre me preguntan en la carpeta .DS_Store dentro de ellos. Parece inevitable a menos que abra la carpeta en Windows y luego elimine el .DS_Store y lo comprima allí. Es una molestia bastante grande.

¿Hay alguna solución fácil?

danixd
fuente

Respuestas:

108

Si no te importa saltar a la terminal, entonces esto es bastante fácil. Si está en /Users/username, que es su directorio $ HOME y hay un subdirectorio llamado foo que desea comprimir pero ignora todos los archivos .DS_Store, luego haga lo siguiente:

zip -r foo.zip foo -x "*.DS_Store"

Para interpretar esto, estamos ejecutando el archivo ejecutable zip con los siguientes parámetros / argumentos:

  • -r para incluir recursivamente todos los directorios debajo de los objetivos que queremos comprimir.
  • foo.zip es el nombre del archivo zip que estamos creando
  • foo es el directorio de destino que queremos comprimir
  • -x "*.DS_Store" excluye todos los archivos cuya ruta termina en la cadena ".DS_Store"

No se necesitan aplicaciones tontas de terceros ni tampoco necesita tirar a la basura sus archivos .DS_Store, solo confíe en todas las bondades de la herramienta Unix integradas en OSX / Darwin.

Whaley
fuente
1
Esto es perfecto, gracias. Por interés, ¿cómo excluiría las terminaciones de múltiples rutas? Algo como zip -r foo.zip foo -x "* .DS_Store, * .svn"?
danixd
55
Use el argumento -x dos veces: zip -r foo.zip foo -x *.DS_Store -x *.svn*
whaley
¿Cómo excluye los archivos de iconos que OSX crea para los iconos de carpetas personalizadas? Tienen una nueva línea o algo así al final del nombre del archivo.
Daniel Beck
No tengo idea de cómo se ven esos nombres de archivo, así que no puedo dar ninguna guía real aquí.
Whaley
1
@Daniel Beck, así que siga usando CleanArchiver y no intercepte la sección de comentarios de la pregunta de otra persona y acepte la respuesta a la llamada de la solución inferior cuando obviamente funciona para el póster original. La respuesta a su pregunta, sorprendentemente, es -x 'Icon?'. Los "?" el carácter en un patrón global de archivo significa "hacer coincidir un solo carácter comodín", por lo que coincidirá independientemente de cuál sea el "?" realmente es. Puede excluir archivos ad-hoc de cualquier tipo simplemente agregando más argumentos -x. zipEs muy flexible. ¿Qué crees que estas utilidades de terceros realmente usan detrás de escena?
whaley
5

Puede crear una aplicación de automatización que acepte una carpeta como entrada y produzca un archivo zip del contenido de la carpeta sin ningún tipo de desmoronamiento.

Almacene esta aplicación en / Usuarios / usted / Aplicaciones y luego arrástrela a la barra de herramientas del buscador. Luego puede arrastrar carpetas a la aplicación desde cualquier ventana del buscador.

Crear una aplicación de automatización

Agregue el paso " Obtener elementos del buscador seleccionados ". Y también agregue un paso ' ejecutar script de shell ' con la opción ' Pasar entrada ' establecida en ' como argumentos '.

Agregar pasos de flujo de trabajo

La secuencia de comandos:

name=("$@")
cd "$name"
zipFileName=`basename "$name"`
zip "${zipFileName}.zip" -r ./* \
    -x */.DS_Store \
    -x */.git \
    -x */.svn \
    -x */.idea \
    -X */__MACOSX
mv "${zipFileName}.zip" ../

Acepta una carpeta como entrada y genera un archivo zip con el nombre de la carpeta.

Michiel Roos
fuente
¡Es genial! ¿Cómo puedo modificarlo para poder arrastrar varios archivos? El nombre de salida debe contener dirname;
Desbloquear el
2
@unbreak no lo sé. Ya no tengo una Mac ;-)
Michiel Roos
3

No creo que haya una manera de hacerlo de manera predeterminada, pero hay dos formas en que puedo pensar para lograr lo que quieres.

En primer lugar, encontré una aplicación gratuita llamada FolderWasher . Suelta la carpeta en la aplicación y eliminará los archivos .DS_Store y la comprimirá por ti.

Alternativamente (y potencialmente mejor que el software de terceros) puede usar Automator para limpiar el archivo después de la creación. En realidad ya existe una acción creada para esto. Eso es solo un paso adicional, y puede arrastrar la acción al Finder para que sea fácil de encontrar.

Delameko
fuente
3

Si ya ha creado el archivo zip (o desea una forma sencilla de eliminar la creación de zip de la publicación .DS_Store), esto eliminará todos los archivos .DS_Store en cualquier ruta en el archivo zip:

zip -d archive.zip "*/*.DS_Store"

La respuesta de Whaley sigue siendo definitivamente la mejor, porque puede ser alias y olvidarse de ella. En mi caso, creé el zip desde Archive Utility, luego me di cuenta de que debería eliminarlos.

James Taylor
fuente
2

Abra la Terminal (/Applications/Utilies/Terminal.app) y ejecute el siguiente comando para mostrar los archivos ocultos:

defaults write com.apple.finder AppleShowAllFiles TRUE && killall Finder

Para ocultar los archivos ocultos, simplemente ejecute:

defaults write com.apple.finder AppleShowAllFiles FALSE && killall Finder

Puede eliminar archivos .DS_Store como cualquier otro archivo sin causar ningún daño a su directorio. Como se dice en Wikipedia, "DS_Store (Desktop Services Store) es un archivo oculto creado por el sistema operativo Mac OS X de Apple Inc. para almacenar atributos personalizados de una carpeta, como la posición de los iconos o la elección de una imagen de fondo".

Penang
fuente
2

Use CleanArchiver para crear esos archivos. De esta manera, no necesita tirar a la basura las preferencias de su carpeta.

Daniel Beck
fuente
2

Si ejecuta esto en Terminal, esto los detiene automáticamente cuando crea carpetas, puede volver a activarlo si lo desea.

defaults write com.apple.desktopservices DSDontWriteNetworkStores true

Luego puede usar el ejemplo @Penang (arriba) para verificar si los archivos ya no se crean. Tuve que cargar un archivo zip y cada carpeta tenía ese archivo y esto me ayudó.

Evan
fuente
0

Hay una explicación de lo que son y cómo eliminarlos en el sitio de ayuda de adobe de todos los lugares.

Son un archivo oculto que se utiliza para almacenar la configuración de una carpeta (como la posición del icono, el color, el fondo de la carpeta y la posición de desplazamiento. Desafortunadamente, parece que no hay forma de evitar que se creen de forma permanente, aunque Apple admite que pueden causar problemas para algunos usuarios

Trezoide
fuente