Directorios de basura en mac: cómo encontrarlos y cómo borrarlos correctamente

Entonces, estoy escribiendo una pequeña pieza de software en Go. Es una biblioteca que permite limpiar la papelera y mover archivos a la papelera. Sin embargo, además, ~/.Trashhay otras carpetas de basura por disco. ¿Cuál sería la forma más correcta de borrarlos?

¿Es simplemente iterar /Volumesy eliminar el .Trashescontenido de cada volumen y volver a crearlo después?

¿Hay documentación oficial al respecto? Si es así, no pude encontrarla.

¿El sistema no volverá a hacer esto? El diseño es mantener una papelera por unidad donde las unidades son carpetas y volúmenes de inicio del usuario. ¿Cuál es el objetivo final aquí?
¿Una carpeta puede tener su propia papelera?
El objetivo final era simplemente poder borrar toda la basura mediante programación.
Las preguntas sobre el desarrollo de software están fuera de tema aquí, pero se pueden hacer en Stack Overflow .
Oh, lo siento, asumí que es una pregunta bastante específica de Apple. Ya que se trata solo de cómo funcionan las carpetas de basura.
No. Este es el tema aquí. Las secuencias de comandos están explícitamente permitidas en el centro de ayuda @user3439894
@bmike, tengo entendido que Go es un lenguaje de programación que está tipificado estáticamente y un lenguaje compilado en la tradición de C, no un lenguaje de secuencias de comandos. Así que creo que cuando alguien dice "Estoy escribiendo una pequeña pieza de software en Go", eso lo convierte en desarrollo de software y está o debería estar fuera de tema.
Conozco a @user3439894, pero no se trata tanto de ir como de dónde están los archivos basura. Tienes 100 % de razón, se podría preguntar en SO y seguramente obtendrás una recepción y respuesta diferente allí, por lo que veo que tu comentario realmente intenta ayudar. Acabo de marcar el "fuera de tema": las secuencias de comandos go están bien aquí, al igual que las secuencias de comandos rápidas, las secuencias de comandos bash, las secuencias de comandos tcl, AppleScript (obtienes el patrón, creo ...)

Respuestas (1)

Spotlight puede ubicar carpetas con un nombre específico en todos los volúmenes indexados y montados (pero no será la respuesta, tengan paciencia conmigo):

mdls ~/.Trash/

Esto le mostrará que kMDItemFSName es ".Trash" , por lo que puede intentar mdfind para realizar una búsqueda de Spotlight

mdfind "kMDItemFSName == '.Trash'"

Lamentablemente, esto no encontrará las basuras ya que Apple las ha hecho invisibles y probablemente las excluyó por completo de la indexación de Spotlight. Pero esta es la mejor forma de Apple para buscar archivos generales.

Así que ahora, necesitas rastrear el sistema de archivos:

find / -name .Trash -print

Esto generará errores en el sistema de archivos, por lo que deberá activar la raíz; tenga cuidado con sudo; puede arruinar un sistema para que no pueda iniciar si mueve o elimina archivos (que es lo que está a punto de hacer: encontrar cosas y luego eliminarlos)

 sudo find / -name .Trash -print

Incluso sin el sudo, encontrará la mayoría de las papeleras, ya que su usuario debería poder escribir en la Papelera para almacenar archivos allí.

Ahora, hay una herramienta más rápida que encontrar (puede tomar decenas de minutos o tal vez horas si comienza a rastrear unidades remotas o conectadas)

locate .Trash

Es probable que la base de datos de localización no se construya cuando la solicite, así que siga las instrucciones que imprime si no tiene una base de datos de localización prefabricada para consultar. Feliz guión. Siéntase libre de hacer una pregunta de seguimiento sobre cómo eliminar si también necesita esa ayuda, pero esto responde cómo encontrar archivos específicamente ocultos del sistema, como los diversos archivos basura.

O, ya sabes, simplemente dile a Finder que vacíe la papelera desde la línea de comando:

Boom, ahora has terminado súper rápido sin importar dónde o cómo se nombren las carpetas.

osascript -e 'tell app "Finder" to empty'