¿Hay alguna manera de evitar que esos molestos archivos .DS_Store se creen alguna vez?

14

¿Hay alguna manera (por ejemplo, un truco binario en Finder) para evitar que cree .DS-Stores en volúmenes LOCALES?

Estoy usando Leopard, por lo tanto, estos no funcionan:

Además, BlueHarvest ralentiza mi computadora.

Kinokijuf
fuente
1
Ver: evitar que MacOS hacer * y * ._ archivos. - ninguna razón específica por qué no desea que estos?
slhck
@slhck: blueharvest funciona, pero ralentiza mi computadora. Estoy buscando algo como esto
kinokijuf
Olvidé que TotalFinder solo funciona en ≥ 10.6, lo siento.
slhck
Esta pregunta estaría demasiado localizada si fuera específica de Leopard y anteriores. Las respuestas solo pueden mencionar la versión actual más baja o más alta admitida donde corresponda.
Lri

Respuestas:

3

Soluciones de terceros

En mi experiencia, BlueHarvest es el mejor en su clase. Técnicamente, no es una respuesta a la pregunta; Puede eliminar pero no impedir .DS_Storearchivos.

Si BlueHarvest es efectivo pero no se adapta a su caso de uso, se hace difícil dar una respuesta aceptable a su pregunta.

Si no tiene una solución de terceros aceptable, debe trabajar con lo que es integral para Leopard ...

Sin una solución de terceros: restrinja el uso de Finder

Al evitar las vistas que no desea guardar, puede evitar la creación de .DS_Storearchivos.

La mayoría de los usuarios tendrán dificultades para contenerse de esta manera, pero es una verdadera respuesta dentro de las limitaciones de la pregunta.

http://diigo.com/0qiwp para una vista anotada de http://lists.apple.com/archives/applescript-users/2006/Jun/msg00180.html donde Matt Deatherage (un ex ingeniero de Apple) explica .DS_Storey otros tipos de archivo.

Graham Perrin
fuente
6

No he encontrado ninguna manera de evitar que se creen, pero puede eliminarlos automáticamente con un script:

#!/bin/sh

find ~ -name .DS_Store -exec /bin/rm -f -- {} \;

exit 0

Ejecútelo cada X minutos a través de launchdo cron. Casi no lleva tiempo ejecutar mi iMac de varios años. Solo buscará su $ HOME (~), pero ahí es donde estarán la mayoría de ellos. Cambie ~ a / si desea eliminarlos en todo el disco, pero eso tomará mucho más tiempo en ejecutarse, por lo tanto, ajuste la frecuencia en consecuencia.

TJ Luoma
fuente
1
También podrías usar find ~ -name .DS_Store -delete. Y no olvide la -namebandera: sin ella, el comando se aplicaría a todos los archivos en ~y ./.DS_Store.
Lri
1
Sé que puedo usar un guión, pero su respuesta no responde a la pregunta.
kinokijuf
La respuesta a la pregunta es "no". No hay una manera de evitar que se creen (excepto en los recursos compartidos de red, que tampoco era la pregunta). Esta respuesta intenta lograr el mismo resultado final. Si SE tuviera una categoría de respuesta llamada "Solución", la habría puesto debajo de eso. Ciertamente no es peor una "respuesta" que un demonio adjunto a un marco (< asepsis.binaryage.com/> ), y mucho más seguro que piratear un sistema binario, y se ejecuta en cualquier versión de Mac OS X.
TJ Luoma
Excepto que no logra el mismo resultado final. Blueharvest es una solución alternativa mejor (el mismo resultado final, salvo por el hecho de que la computadora ejecuta loke hog). También asepsia es un controlador IIRC.
kinokijuf
1
@kinokijuf, deja caer la actitud autorizada. Cuando alguien le ofrece ayuda gratuita, no puede criticarla. Es justo decir, una vez, que no es lo que estás buscando, pero la defensa de TJ Luoma (que hiciste tristemente necesaria) es una señal más que suficiente para que te calles. Dios.
r_alex_hall
4

Para evitar que aparezcan esos feos archivos .DS_Store, parece ser una opción relativamente nueva para hacerlo de manera limpia, no solo para unidades de red, como:

defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true

pero también para volúmenes conectados por USB:

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

En relación con el título de la pregunta de OP, esta es la mejor solución sin hacks, ya que aborda no solo el mal comportamiento de la red, sino que también se aplica a la mayoría de los discos conectados. Y esa podría ser la mayor molestia para la mayoría de los usuarios que comparten dispositivos como memorias USB entre diferentes entornos. Utiliza solo las opciones proporcionadas por Apple y no interfiere con el funcionamiento normal de ninguna manera.

En relación con la situación concreta explicada en el cuerpo del OP, tiene un valor limitado, ya que esta opción USB solo está disponible en versiones posteriores de OS X / macOS. Además, esto todavía no aborda el problema de la .DS_Storecreación en discos internos, donde también pueden ser una molestia para tratar. Aunque en ese lugar en realidad podrían tener algún tipo de propósito.

Una solución más completa para este problema, aunque más hackea, que funciona en la mayoría de las versiones del sistema operativo Mac es la siguiente: Destruir completamente este comportamiento desagradable en todos los discos, y con un parche binario / inyector de código como la cuestión de el OP anhela: existe DeathToDSStore / with source .

Ambas opciones suponen que cualquiera todavía usa Finder ... El uso de un administrador de archivos diferente también resolvería este problema. Existen numerosos contendientes para reemplazar Finder para la gestión de archivos en macOS. Dos de los mejores perros en este campo son Pathfinder o XFile .

LаngLаngС
fuente
2
+1 para el comando USBStores (¡no lo sabía!) Así como DeathToDSStore.
Wowfunhappy
3

Pruebe este comando: los valores predeterminados escriben com.apple.desktopservices DSDontWriteNetworkStores true en la terminal. Parece funcionar para mí

Siriss
fuente
44
Funciona solo para la red, no para volúmenes locales.
kinokijuf
Estás en lo correcto. Pido disculpas por mi confusión.
44
Este es el único caso real en el que pude ver que .DS_Stores es molesto. Están ocultos en Mac OS por defecto, y son cruciales para el ahorro de configuración de la vista de carpetas individuales
Alexander - Restablecer Monica
2
Pero no quiero guardar la configuración de vista.
kinokijuf
1

He creado un script más eficiente (destinado a ejecutarse continuamente como daemon), findal principio realizará una ejecución para borrar los archivos ya existentes y capturará nuevos archivos en tiempo real a través de fsevents. Por lo tanto, se eliminarán inmediatamente cuando se creen, y el uso de recursos es muy bajo. AFAIK esta es la mejor manera posible de deshacerse de ellos sin desactivar SIP.
Aquí está: https://github.com/magicgoose/DS_Store-Kill

Nombre para mostrar
fuente