¿Cómo evitar que OS X escriba archivos Spotlight y Trash en tarjetas de memoria y memorias USB?


126

Al enchufar un dispositivo USB en una Mac, OS X crea una serie de archivos ocultos en el dispositivo, incluido un índice de Spotlight y una carpeta Papelera.

Ejemplo del terminal para una memoria USB "Sin título":

$ ls -a /Volumes/Untitled
.Spotlight-V100
.Trashes
._.Trashes
.disk
.fseventsd

Incluso hace esto en la tarjeta de memoria xD de mi cámara, por lo que después de haber copiado mis fotos y eliminarlas de la tarjeta, la tarjeta todavía está llena.

¿Es posible desactivar esto para USB y tarjetas de memoria, por lo que OS X escribe estos archivos en el disco primario o no los escribe en absoluto?


Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
bmike

Respuestas:


20

ACTUALIZADO en marzo de 2018 Parece que mi solución ya no es válida, @ElmerCat propone la solución que funciona en este momento en una de las respuestas a continuación.

Sugiere usar CleanMyDrive 2

Solución obsoleta

Como sé, tienes 2 opciones:

  1. TinkerTool (gratis)

texto alternativo

  1. BlueHarvest (comercial)

texto alternativo


1
OK gracias. Esperaba que hubiera una configuración incorporada en alguna parte, pero al menos hay una solución disponible.
jg-faustus

3
@Philip: Desafortunadamente, Tinkertool solo trata con archivos .DS_Store de acuerdo con su página de detalles , lo que presumiblemente significa que este es el único archivo oculto que se puede deshabilitar a través de la CLI; los otros archivos necesitan herramientas personalizadas. Pero BlueHarvest se ve bien y hace lo que necesito. (Encontré algunos detalles más sobre el tema aquí y aquí )
jg-faustus

1
anticuado! las respuestas posteriores son mejores
Dima Tisnek

1
@ jg-faustus No solo Tinkertool solo se ocupa de los archivos .DS_store, sino que también lo hace solo para los sistemas de archivos de red
nhed

2
Probado Tinkertool no funciona en unidades USB (al menos en 10.9)
pufferfish

106

Solo para un volumen montado en particular, como una unidad flash llamada yourUSBsticken este ejemplo, estos comandos eliminarán el cruft existente, detendrán la indexación de Spotlight ahora y en el futuro, detendrán el registro de eventos relacionados y deshabilitarán la función Papelera.

mdutil -i off /Volumes/yourUSBstick
cd /Volumes/yourUSBstick
rm -rf .{,_.}{fseventsd,Spotlight-V*,Trashes}
mkdir .fseventsd
touch .fseventsd/no_log .metadata_never_index .Trashes
cd -

Otras cosas desconocidas que aún puede ver y que probablemente desee conservar, como los archivos dobles "._ *" de Apple y otros cruft de Apple DS relacionados con los iconos y la colocación de ventanas.


8
Si bien esto puede deshabilitar la indexación, esos archivos y directorios aún estarán presentes en el volumen (que es la parte molesta en primer lugar), y si los elimina .Spotlight * y .fseventd volverán. De hecho, .metadata_never_index es una entrada más en la lista de archivos que el cruft habitual.
ShreevatsaR

1
+1, en realidad, se me ocurrió la idea de tocar las basuras yo mismo y fui a buscar una solución mejor, pero al haber visto esto no pudo resistir +1. Resuelve el problema real: evitar que el audio del automóvil reproduzca archivos
basura

+1 sabía que esto existía pero siempre tengo que encontrarlo cuando lo necesito. Esto es útil si tiene más acceso a la unidad USB que al sistema OSX.
mlhDev

2
Gracias, no sabía sobre "cd -". Todavía he estado presionando pushd / popd :).
studgeek

¿Qué pasa con el directorio ".DS_Store"? Eso sigue ahí. ¿Alguna razón por la que eso no se incluyó en la línea "rm -rf"?
Marnix A. van Ammers

30

Para evitar que Spotlight indexe volúmenes que no son del sistema, agregue / Volumes a la lista de Privacidad en Preferencias del sistema> Spotlight.

/ Volumes es el punto en el sistema de archivos donde se montan todos los discos que no son del sistema de forma predeterminada.

ingrese la descripción de la imagen aquí


imposible agregar / Volúmenes en 10.8; Sin embargo, es posible agregar volúmenes individuales de uno en uno. Sospecho que es similar amdutil -i off /Volumes/xxx
Dima Tisnek

15
@ qarma Es muy posible agregar / Volúmenes en 10.8 o posterior. Simplemente abra una ventana del Finder, presione Shift+ Command+ Gpara abrir la ventana "Ir a la carpeta ...", escriba /Volumesy luego arrastre el pequeño icono de carpeta en la parte superior de la ventana del Finder (junto a la palabra "Volúmenes") en el lista en la captura de pantalla anterior
Chris Mukherjee

Voy a tener que probar eso ...
Dima Tisnek

1
Puedes agregar /Volumes, simplemente no funciona.
kenny

1
En mi máquina, el disco duro incorporado está funcionando /Volumes/Macintosh HD, así que si esto funcionara, ¿no detendría Spotlight de indexar el HD?
LarsH

17
  1. Inserte la unidad USB.
  2. Navega Macintosh HD > Applications > Utilitiesy abre Terminal.
  3. En el indicador de Terminal, escriba el siguiente comando, reemplazando path_to_volumecon la ruta real:

    sudo mdutil -i off /path_to_volume

  4. Pulse Retorno.

  5. Si se le solicita una contraseña, escriba su contraseña de administrador y luego presione Intro. Recibirá la respuesta:

    /path_to_volume/: Indexing disabled for volume. en Mac OS X 10.4 o

    /path_to_volume: Indexing disabled. bajo Mac OS X 10.5 o posterior.

    Spotlight dejará de indexar inmediatamente el volumen especificado.

  6. Si está utilizando Mac OS X 10.5 o posterior, vaya al paso 9.

  7. En el indicador de Terminal, escriba el siguiente comando, nuevamente sustituyendo la ruta correcta:

    sudo mdutil -E /path_to_volume y presione regresar

  8. Si se le solicita una contraseña, escriba su contraseña de administrador y luego presione Intro. Recibirá la respuesta:

    /path_to_volume/: Volume index removed.

  9. Cuando se le solicite Terminal, escriba y exitluego presione Intro.
  10. Salir de la terminal.

Gracias a thexlab.com , su solución de problemas de libros electrónicos de Mac OS X y su sitio web para la explicación detallada de por qué otros métodos funcionan.


1
Nota sudo solicita la contraseña del usuario actual
user151019

Esto funcionó para mí. El uso del disco por Spotlight pasó de 2GB a 200k. El hecho de que Spotlight ocupa tanto uso del disco en un disco vacío es una locura . Me pregunto si podemos reunir esta solución y algún tipo de script de disparo basado en USB, que detecta qué tipo de dispositivo USB está allí y ejecuta este comando de forma automática. ¿Alguna idea sobre eso?
Oteo

15

Otra forma de manejar (solo los) archivos de Spotlight es agregar ese volumen a su lista de exclusión de Spotlight. Conecte el dispositivo y vaya al panel de control de Spotlight en Preferencias del sistema. Seleccione la pestaña Privacidad. Ahora arrastre ese volumen desde su escritorio hasta la lista de privacidad ... o use el botón + en la parte inferior para agregarlo. No habrá más indexación de foco en ese volumen.


Desafortunadamente, los volúmenes parecen eliminarse de la lista de privacidad cada vez que se desmontan. Por lo tanto, esto debería repetirse cada vez que vuelva a conectar su tarjeta de memoria o dispositivo USB.
LarsH

9

2017 diciembre

Uno pensaría que después de todos estos años, Apple construiría algo en el Finder para lidiar con esto. Todavía es un problema muy común para las personas que usan discos USB o tarjetas SD para reproducir medios en sus automóviles u otros dispositivos.

No obstante, los desarrolladores han llenado el vacío con numerosas aplicaciones aprobadas por Apple. Las aplicaciones enumeradas en las respuestas anteriores podrían haber sido buenas en ese momento, pero no se han mantenido para funcionar con versiones modernas de macOS.

También sería un poco cauteloso al instalar algo que ejerza un control total del sistema de archivos, escrito por desarrolladores no identificados. No querer tratar con la App Store es una cosa, pero no querer registrarse con Apple como desarrollador es otra. Además, algo de la AppStore ha sido sometido al menos a una auditoría mínima por parte de Apple y puede eliminarse de su computadora tan fácilmente como está instalado.

Por lo tanto, cada vez que leas esta "respuesta", te recomendamos que busques en la tienda de aplicaciones algo actualizado, bien revisado y gratuito.

TL; DR:

Mi elección el 20 de diciembre de 2017 es "CleanMyDrive 2" de la App Store. Resuelve el problema, interfaz encantadora, completamente gratis. (Ofrece compras en la aplicación de iconos personalizados. De lo contrario, todo funciona de forma gratuita).

Mañana, puede surgir algo mejor, pero la conclusión es: la App Store tiene soluciones fáciles y gratuitas para la pregunta original pero duradera de jg-faustus, planteada aquí hace tantos años, una pregunta que tuve hoy.

Así que pido disculpas si esto parece más una queja que una respuesta, pero de hecho, todas las respuestas anteriores estaban desactualizadas y no conducían a una solución útil. No decir algo llevaría a más personas a perder el tiempo jugando con la Terminal o instalando aplicaciones cuestionables. Simplemente vaya a la App Store : no tendrá que pagar.


6

Utilizo la línea de comandos de la Terminal de MacOS para enumerar y eliminar todos estos archivos y carpetas antes de expulsar el dispositivo del escritorio. Para algunos archivos, puede que tenga que sudo el comando / bin / rm.


Eso es lo que yo hago también. Aunque sería aún mejor si no fuera necesario, estoy investigando las alternativas.
jg-faustus

Por cierto, el dispositivo se encuentra en algún lugar en / Volumes / <name>
DerMike

4

Uso Clean Eject (gratis) y un servicio Automator personalizado (aún privado) para poder asignar una tecla de acceso rápido para limpiar y expulsar un volumen usando la aplicación.


Sin acceso al servicio de Automator que mencionó, esta respuesta no es realmente muy útil. ¿Puedes compartir el servicio también?
nohillside

La respuesta es absolutamente útil: puede usar la aplicación sin la acción de Automator. Si desea agregar una tecla de acceso directo especial para Clean Eject, entonces tiene muchas opciones: Alfred, Keyboard Maestro. La acción de Automator no es esencial, pero es útil. Lo subiré cuando pueda a: gingerbeardman.com/services
Matt Sephton

El servicio que uso para limpiar expulsar los volúmenes seleccionados del buscador ahora se carga por sitio (consulte el enlace anterior).
Matt Sephton

Gracias por la carga, hace que la respuesta sea mucho más completa.
nohillside

4

Publicación de @ Miles Leacy

y el comentario de @ qarma:

No, esto todavía es posible incluso en OSX 10.9, pero ahora debe realizar algunos pasos adicionales:

1) En Finder, haga clic en Ir y luego en Ir a la carpeta ...

2) Escriba / Volumes y haga clic en Ir.

3) Se abrirá una ventana del Finder, y debería decir Volúmenes en la parte superior.

Éste es el paso más importante:

4) Junto a donde dice Volúmenes en la parte superior de la ventana del Finder, hay un pequeño ícono de carpeta azul. Haga clic y arrastre este icono hacia la izquierda en su panel de Favoritos .

5) Ahora tendrá acceso a su carpeta Volumes en cualquier lugar, incluso en la configuración de Spotlight como sugirió Miles Leacy. (Siempre que lo necesite, simplemente haga clic en el enlace Favoritos para seleccionarlo).

Espero que esto ayude,

Mejor,

Vlad :)

~ ~ ~

Cómo agregar la carpeta Volúmenes a sus Favoritos para que pueda acceder a ella en la configuración de Spotlight

~ ~ ~

Cómo se ve después de agregar la carpeta Volumes a la lista de excepciones de Spotlight:

Observe que en el fondo puede ver mi publicación en Safari. ;)

Cómo se ve después de agregar la carpeta Volúmenes a la lista de excepciones de Spotlight


1
FWIW, creo que esta es una buena respuesta y no necesita ser un comentario. Quitaría esa parte y la dejaría como está.
Mark Edington

Dado que Mac HD es una subcarpeta de Volúmenes, ¿no deshabilita también Spotlight en Mac HD?
LarsH

@LarsH Buena pregunta. No me gusta Spotlight, y lo tengo completamente deshabilitado en mi Mac hoy en día, así que no estoy seguro. : 3
Vladimir el

3

En realidad, tocar el archivo .Trashes será la mejor manera de resolver su problema principal ya que .Trashes ahora es un archivo en lugar de una carpeta. Esto significa que Apple no puede reubicar los archivos en la carpeta .Trashes cuando los elimina y su unidad ya no está llena.

Otra opción es presionar Cmd-Opt-Shift-Backspace para forzar al Finder a vaciar el contenido .Trashes en la tarjeta antes de expulsarla.

El primer método es realmente el mejor ya que el segundo afecta a todos los contenidos de la Papelera en todas las unidades.

Sin embargo, parece de su publicación que está más preocupado por la contaminación del disco por los diversos archivos de puntos. Si sigue los pasos mencionados anteriormente, ahorrará espacio en el disco, pero se creará un mínimo de archivos de puntos.


3

MacOS ahora proporciona este indicador directo que puede alternar desde la Terminal:

defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true

1
Buena respuesta para parte de la pregunta. Esto deshabilita el DSStore, pero la pregunta era específicamente sobre los archivos Trash y Spotlight, sobre los cuales su solución (de lo que puedo leer) no tiene nada que ver.
Oteo

2

Una manera fácil de detener el audio de mi automóvil al intentar leer archivos ocultos de Mac OS es eliminarlos en Windows OS. Simplemente copie su música MP3 a la memoria USB de iTunes. Cambie el stick al sistema operativo Windows y seleccione ver archivos ocultos de las opciones de carpeta. Esto le permitirá eliminar todos los archivos ocultos que su confiable Mac colocó en su memoria USB, incluidos esos molestos archivos .trashes. ¡Finalmente un uso para el sistema operativo Windows!


+1 Es un poco tedioso, pero claro, por qué no, hace el trabajo, jaja.
Vladimir

2

Terminé usando una aplicación gratuita " Hidden Cleaner ". El reproductor de MP3 de mi auto también intentaba leer. (MP3filename) .mp3 (archivos mp3 vacíos y vacíos). Vaya a Macintosh HD en la sección Dispositivos en el menú de la izquierda del Finder, arrastre su unidad USB y suéltela en la aplicación Hidden Cleaner. Limpiará los archivos huecos y dejará los MP3 reales y expulsará su USB.

Nota: Esa no es una solución permanente. Debe hacer lo anterior cada vez que copie archivos. Aunque no me importa.


Otro programa similar: Expulsar para Windows www011.upp.so-net.ne.jp/decafish/EjectForWindows/…
Vinicius Pinto

Cuando se trata de jugar con el sistema de archivos, no es una buena idea confiar su computadora a desarrolladores no identificados. Sólo digo'.
ElmerCat

2

Antigua pregunta, pero finalmente descubrí Asepsis . Esta es una utilidad de código abierto que resuelve este antiguo problema al limitar todos los .DS_STOREdirectorios en un solo lugar, de forma predeterminada /usr/local/.dscage
Después de la instalación, y reiniciar, no más .DS_STORE en unidades USB, con la ventaja (para algunos de nosotros) de no tener que deshabilitar la indexación en unidades externas. Desde la versión 1.4 también es compatible con OS X Mavericks.

Actualización del sitio web de Aepsis: "Advertencia: Asepsis ya no se encuentra en desarrollo activo y es compatible con OS X 10.11 (El Capitan) y posteriores.


¡Bueno! Me pregunto cómo manejará este programa un bloqueo del sistema o una carga extrema de la CPU. En otras palabras, me pregunto si una apuesta de desincronización se manejará automáticamente, o si tendrá que hacerlo usted mismo. Automaticlly es bueno porque no necesitamos preocuparnos por eso, pero también significa que el programa tendrá que hacer muchas más comprobaciones.
Vladimir

2

La mayoría de las soluciones aquí son 'limpiar archivos de puntos antes de expulsar', en lugar de 'evitar la creación de archivos de puntos'.

En mi búsqueda de una solución gratuita para el primero, probé algunas opciones y me decidí por el applecript aquí: Superusuario: ¿Alguien tiene un script de Mac Terminal para eliminar archivos ocultos? porque me permite ver exactamente lo que está sucediendo en el camino.

Tenga en cuenta en mi comentario sobre esa respuesta que hice una pequeña edición para que funcione en OSX 10.12.1. (No estoy volviendo a publicar la fuente en este caso, ya que parece una pregunta bastante 'amigable con el enlace').


2

Lo más tonto que he hecho es que no puedo simplemente contribuir con esto a la respuesta de Metaxis. Pero es fácil crear un script bash que maneje esto automáticamente para todas las carpetas en / Volumes (o uno específico si lo especifica). Debería poder invocarlo con Automator o Applescript cuando aparece una carpeta en / Volumes, entonces tiene la desactivación automática de la indexación.

#!/bin/bash

if [ -n "$1" ]; then
    if [ ! -e "${1}/.metadata_never_index" ]; then
        echo "mdutil -i off $1"
        mdutil -i off "$1"
        cd "$1"
        rm -rf .{,_.}{fseventsd,Spotlight-V*,Trashes}
        mkdir .fseventsd
        touch .fseventsd/no_log .metadata_never_index .Trashes
    fi
else
#    echo "finding Volumes"
    find /Volumes -type d -maxdepth 1 -mindepth 1 -print0 | xargs -0 -n 1 "$0"
fi

0

Encontré esta aplicación en la tienda de aplicaciones de Apple de forma gratuita y la utilizo, y me ha funcionado muy bien. Tienes que buscar "cleanusbdrive" una sola palabra sin las comillas en la App Store.

Es de José A. Jiménez Campos.



0

Actualmente, Cleanmydrive2 está disponible en la tienda de aplicaciones de forma gratuita y maneja este problema para usuarios de alta sierra.


-1

Tengo esto para trabajar en Sierra 10.12.3 en Automator.

Primero, hice esta versión del script: funciona de la misma manera que freefly42, solo una forma diferente de escribir lo mismo.

Para traducir para hablantes no nativos de bash, lo que hace es:

Si se ejecuta con un argumento de línea de comandos, intenta ver si el argumento es un directorio y si ese directorio contiene un archivo llamado ".disable_osx_metadata".

Si el archivo especial no está allí, entonces no pasa nada. Ese impulso es ignorado.

Si el archivo especial está allí, el script elimina todos los metadatos de osx y crea algunos nuevos elementos pequeños que evitan cualquier otra cosa. Por ejemplo, crear un archivo llamado .Trashes evita que el sistema operativo cree un directorio llamado .Trashes y luego escriba archivos allí.

Si se ejecuta sin argumentos, se ejecuta solo una vez para cada directorio en / Volumes.

Entonces, si lo ejecuta manualmente o hace clic en él, verifica todas las unidades conectadas. Si crea un flujo de trabajo en Automator, Automator lo ejecuta cada vez que se conecta una unidad, solo para esa unidad.

#!/bin/bash
x=.disable_osx_metadata
[[ "$1" ]] || exec find /Volumes -type d -maxdepth 1 -mindepth 1 -exec $0 {} \;
[[ -e "$1/$x" ]] || exit 0
mdutil -i off "$1"
rm -rf "$1"/.{,_.}{fseventsd,Spotlight-V*,Trashes}
mkdir "$1/.fseventsd"
touch "$1/.fseventsd/no_log" "$1/.Trashes" "$1/$x"

Guardar como "disable_osx_metadata", chmod 755, copiar a / usr / local / bin.

$ cd Documents/disable_osx_metadata/
$ chmod 755 disable_osx_metadata
$ sudo cp disable_osx_metadata /usr/local/bin

Luego abra Automator, Nuevo, Acción de carpeta

Luego descubrí que incluso en Sierra 10.12.3 todavía PUEDES agregar el directorio / Volumes en Automator, de una manera no obvia.

Vaya a Finder, File, "Ir a la carpeta ...", escriba manualmente "/ Volumes" y presione Enter.

Ahora esto le muestra una ventana con sus unidades HD y USB, pero no hay una carpeta "/ Volúmenes" obvia en la que hacer clic. Pero la barra de título dice "/ Volumes", y también aparece en la parte inferior.

Puede arrastrar el ícono de la carpeta al lado de "/ Volumes", ya sea desde la barra de título o desde la parte inferior, hasta el Automator, y soltarlo en "La acción de carpeta recibe archivos y carpetas agregados a: [______]"

Arrastrar / Volúmenes desde la barra de título del Finder

Cerrar Finder

De vuelta en Automator: a la izquierda, desplácese hacia abajo y arrastre "Obtener contenido de la carpeta" a la derecha y suéltelo.

Luego, a la izquierda nuevamente, desplácese hacia abajo y arrastre "Ejecutar script de Shell" hacia la derecha y suéltelo debajo de "Obtener contenido de la carpeta".

Cambie "Pasar entrada:" a "como argumentos". Shell: [/ bin / bash] Pase de entrada: [como argumentos]

Luego arrastre el script desde / usr / local / bin al cuadro debajo de "Ejecutar script de Shell" para que diga "/ usr / local / bin / disable_osx_metadata"

Archivo, guardar, deshabilitar_osx_metadata.workflow

Flujo de trabajo de acción de carpeta de Automator

Como referencia, esto se guarda en: / Users / YOUR_NAME / Library / Workflows / Applications / Folder Actions Si guarda algo incorrecto, creo que debe navegar manualmente allí en Finder para eliminarlo.

Finalmente, para cada nueva unidad usb que desee proteger, debe crear un archivo llamado ".disable_osx_metadata" en la carpeta raíz.

Puede hacerlo en la Terminal: $ touch / Volumes / NO \ NAME / .disable_osx_metadata

O simplemente mantenga un pequeño archivo de texto con un nombre visible (sin punto inicial) y cópielo en la raíz de cualquier unidad usb nueva y cámbiele el nombre .disable_osx_metadata después de copiar.

Esa unidad ahora se limpia cada vez que la conecta a partir de ahora.

No tan limpio como me gustaría. Debe contaminar un poco la unidad para indicarle al sistema operativo que no la contamine más. Parece que no hay forma de hacer que el sistema operativo simplemente lo deje solo y no agregue ningún archivo que no solicitó.

TODO: Agregue funciones de activación / desactivación para crear / eliminar el archivo de puntos.

TODO: Esto no evita los archivos .DS_Store en cada directorio.

TODO: ¿Es posible empaquetar el script y el archivo foo.workflow para que un usuario pueda omitir la mayoría de estas instrucciones manuales? Veo que hay una opción de "exportación" en Automator que crea algún tipo de archivo de paquete.

TODO: Posiblemente obsoleto toda esta publicación. Este flujo de trabajo de AppleScript + Automatizador podría ser mejor: https://superuser.com/questions/319553/does-anyone-have-a-mac-terminal-script-to-remove-hidden-files/814104#814104

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.