¿Hay alguna manera (por ejemplo, un hack 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.
En mi experiencia, BlueHarvest es el mejor de su clase. Técnicamente, no es una respuesta a la pregunta; puede eliminar pero no prevenir .DS_Store
archivos.
Si BlueHarvest es efectivo pero no se adapta a su caso de uso, se vuelve difícil dar una respuesta aceptable a su pregunta.
Si no tiene una solución de terceros aceptable, entonces debe trabajar con lo que es parte integral de Leopard...
Al evitar las vistas que no desea guardar, puede evitar la creación de .DS_Store
archivos.
A la mayoría de los usuarios les resultará difícil contenerse de esta manera, pero es una respuesta verdadera dentro de las limitaciones de la pregunta.
http://diigo.com/0qiwp para obtener una vista comentada de http://lists.apple.com/archives/applescript-users/2006/Jun/msg00180.html donde Matt Deatherage (ex ingeniero de Apple) explica .DS_Store
y otros tipos de archivo.
Para evitar que aparezcan esos feos archivos .DS_Store, parece haber una opción relativamente nueva para hacer esto limpiamente, no solo para las 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 los OP, esta es la mejor solución sin hacks, ya que aborda no solo el mal comportamiento de la red, sino que también afecta 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 de los OP, tiene un valor limitado, ya que esta opción de USB solo está disponible en versiones posteriores de OS X/macOS. Además, esto todavía no aborda el problema de la .DS_Store
creación en discos internos, donde también puede ser una molestia tratar con ellos. Aunque en ese lugar en realidad podrían servir para algún tipo de propósito.
Una solución más completa a este problema, aunque más pirateada, que funciona en la mayoría de las versiones del sistema operativo Mac es la siguiente: Para eliminar por completo este desagradable comportamiento en todos los discos, y con un parche binario/inyector de código como la cuestión de el OP anhela: hay DeathToDSStore / with source .
Ambas opciones asumen que cualquiera todavía usa Finder... Usar un administrador de archivos diferente también resolvería este problema. Existen numerosos contendientes para reemplazar Finder para la administración de archivos en macOS. Dos de los mejores perros en este campo son Pathfinder o XFile .
No he encontrado ninguna forma 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 launchd
de o cron
. Casi no toma tiempo ejecutarlo en mi iMac de varios años. Solo buscará en su $HOME (~), pero ahí es donde estarán la mayoría de ellos. Cambie ~ a / si desea eliminarlos en todo el disco, pero eso llevará mucho más tiempo, así que ajuste la frecuencia en consecuencia.
find ~ -name .DS_Store -delete
. Y no olvide la -name
bandera: sin ella, el comando se aplicaría a todos los archivos en ~
y ./.DS_Store
.Prueba este comando en la terminal:
defaults write com.apple.desktopservices DSDontWriteNetworkStores true
Parece funcionar para mí.
Tuve el mismo problema y las soluciones para evitar esos molestos archivos en el disco montado local no me funcionaron.
Al final, encontré una solución adecuada, que consiste en buscar y eliminar periódicamente estos archivos solo en el disco local montado. Agregué un cronjob con el siguiente contenido:
9 */1 * * * find -x ~ -path /Users/adietz/Library -prune -o -fstype local -name .DS_Store -print -exec /bin/rm -f -- {} \; >> ~/.cron.log 2>&1
Esto es lo que significa:
9 */1 * * *
realiza el comando cada 9 minutos después de la hora (por lo tanto, 10:09, 11:09, 12:09, ...)find -x ... -fstype local
(opcional) Realice la búsqueda solo en el sistema de archivos local montado e ignore cualquier otro disco montado bajo~
~
la carpeta para buscar (carpeta de inicio)-path /Users/user/Library -prune -o
(opcional) expresión para NO buscar en la Library
carpeta (lo que podría arrojar errores de entrada/salida).-name .DS_Store
el nombre del archivo a buscar-print
(opcional) imprimir una ocurrencia encontrada-exec /bin/rm -f -- {} \;
eliminar el archivo>> ~/.cron.log 2>&1
(opcional) Agrega la salida a un archivo, para que pueda verificar que funciona y dónde se han eliminado los archivos molestosEDITAR: aparentemente ya no funciona en las versiones más nuevas de macOS
Creé un script más eficiente (destinado a ejecutarse continuamente como daemon), hará una ejecución find
al principio para borrar los archivos ya existentes y detectará nuevos archivos en tiempo real a través de fsevents. Por lo tanto, se destruirán inmediatamente a medida que se creen, y el uso de recursos es muy bajo. AFAIK, esta es la mejor manera posible de deshacerse de ellos sin deshabilitar SIP.
Aquí está: https://github.com/magicgoose/DS_Store-Kill
slhck
kinokijuf
slhck
Lrí
daviesgeek