¿Cómo puedo ver dónde escribe un programa en mi disco?

4

Si deseo desinstalar un programa y eliminar todos los datos almacenados en mi computadora, ¿Existe una herramienta para ver dónde un programa ha escrito datos? Supongo que no será posible después del hecho, pero ¿quizás haya algo que pueda ejecutarse cuando un programa se inicia por primera vez para monitorear todas las ubicaciones en las que escribe?

Creo que estoy buscando algo que haga para el almacenamiento local lo que Little Snitch hace para el internet.

    
pregunta Daniel 22.12.2011 - 00:44

4 respuestas

11

Si lo hago bien, ¿quieres monitorear todas las operaciones del sistema de archivos de tu aplicación cuando la inicias y cuando se ejecuta?
En lugar de encontrar cada byte que este programa haya escrito en su disco duro.

Para el primer caso tengo dos recomendaciones:

  • Instruments.appde/Developer/Applications/(necesita Xcode para eso)
    • Elegir "Actividad de archivo" de las plantillas

Suplementodel2011-12-22

  • Yparalalíneadecomandos,copiadodesde aquí

    sudo opensnoop -p PID

Le muestra todos los archivos a los que se accede en su sistema mediante un proceso en particular (al pasar su PID)

    
respondido por el iolsmit 22.12.2011 - 01:33
1

Este método no es tan automatizado como otras opciones, pero tiene la ventaja de que encuentra archivos asociados con una aplicación, incluso si no se usan durante la sesión de monitoreo.

Uso una aplicación llamada Find Any File , que te permite buscar fácilmente en todo tu disco duro usando algunas consultas complejas.

Este método se basa en la suposición de que todos los archivos de la aplicación tienen el nombre de la aplicación en el nombre del archivo, o se almacenan en algún lugar con el nombre de la aplicación en el nombre de una carpeta adjunta. Esto es casi siempre cierto; Soporte de aplicaciones, elementos de inicio de sesión / launchagents / launchdaemons, cachés, el propio paquete de aplicaciones, etc., todos lo siguen.
Todavía tengo que encontrar una aplicación con archivos en lugares no obvios que no cumplan con esta regla .

Aquí es cómo formularía mi consulta para la aplicación Balsamiq Mockups , que instalé hace unos días:

Larazónporlaquetengolasdospartesdelnombreporseparadoesparacubrirloscasosdondehayunespacioentrelasdospalabras(comoelpaquetedelaaplicación)ydondenohay(comounarchivocom.developer.AppName).

ElcomponenteModificationDateiswithinthepast...esopcionalysoloesútilcuandolaaplicaciónsehainstaladorelativamenterecientemente.Engeneral,soloelnombredelaaplicacióndebeestarbien.

Losresultadosmuestrantodoslosarchivosquelaaplicaciónhacreado:

Tengo la vista en modo jerárquico para mostrar la ubicación de los archivos, pero cualquier modo de vista está bien.

Si desea eliminar los archivos, cambie a la vista de lista, selecciónelos todos, haga clic con el botón derecho y elija Mover a la Papelera.

Bonificación: Si la aplicación tiene una extensión de archivo personalizada, también puede redondear fácilmente todos esos archivos: Name ends in .ext

    
respondido por el Nathan Greenstein 22.12.2011 - 01:11
0

Esto no es ideal, pero aquí hay otra idea:

  • Crear una nueva cuenta de usuario.
  • En la terminal:
    • touch ~/Desktop/first_dir
    • touch ~/Desktop/second_dir
    • ls -laR ~ > ~/Desktop/first_dir
  • Instalar el programa en cuestión
  • Ejecutarlo
  • En la terminal:
    • ls -laR ~ > ~/Desktop/second_dir
    • diff ~/Desktop/first_dir ~/Desktop/second_dir
respondido por el Daniel 22.12.2011 - 07:04
0

La línea de comando es la opción más eficiente aquí, solo use el comando lsof (listar archivos abiertos) con las opciones relevantes, puede limitar los resultados al archivo abierto todo, por usuario, por padre proceso, por ID de grupo, etc.

Escriba man lsof en la Terminal para todas las opciones.

Otra opción es usar la aplicación Activity Monitor, ubique su aplicación en ejecución en la lista, haga doble clic en ella y luego seleccione 'abrir archivos y puertos'.

    
respondido por el demianturner 28.12.2011 - 13:31

Lea otras preguntas en las etiquetas