¿Cómo puedo comparar estructuras de archivos antes y después de instalar un software?

Estoy escribiendo una nueva fórmula para Homebrew para un software que mantengo y, como parte de mis pruebas, me gustaría asegurarme de que los archivos solo se agreguen en los lugares correctos durante la instalación y que todos los archivos se eliminen durante la desinstalación.

¿Cuál es la mejor manera de comparar estructuras de archivos antes y después de instalar y desinstalar mi prueba?

Obviamente no es lo que pediste, pero sigue siendo útil para una tarea similar 'lsbom'.

Respuestas (3)

En Terminal puedo pensar en dos opciones:

  1. ls -R.

  2. tree directory-name/(después de instalarlo; es decir brew install tree). La barra inclinada al final conserva la visualización de caracteres especiales en el archivo en el que se guarda la salida.

En ambos casos, redirige la salida a un archivo antes y después de la instalación y compara los dos archivos posiblemente usando Apple FileMerge.app incluido con Xcode.

Me gusta usar "buscar" y "shasum" para este tipo de tareas. Dos invocaciones diferentes, 1 para la estructura, y otra para los sha-1's de los archivos:

find -s /path/to/directory -ls > files-before.txt
find -s /path/to/directory -type f -exec shasum \{} \+ >> files-before.txt

Ejecute sus instalaciones/desinstalaciones y luego use el mismo proceso para "archivos-después.txt". Entonces

diff files-before.txt files-after.txt

Se me ocurren dos formas de la parte superior de mi cabeza:

  • fseventer es una aplicación que utiliza el marco FSEvents de Apple para ver cómo cambia el sistema de archivos en vivo. Asegúrese de leer las advertencias y advertencias en el sitio web del desarrollador.
  • Haga una copia de los directorios relevantes (a un lugar conveniente, como su escritorio) antes de realizar la acción. Luego puede usar FileMerge (viene con las utilidades para desarrolladores) para comparar directorios.