¿Cómo puedo comparar las estructuras de archivos antes y después de una instalación de software?


5

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

¿Cuál es la mejor manera de comparar estructuras de archivos antes y después de que mi prueba se instale y desinstale?


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

Respuestas:


2

En la Terminal puedo pensar en dos opciones:

  1. ls -R.

  2. tree directory-name/(después de instalarlo; es decir brew install tree). La barra diagonal 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 que se entrega con Xcode.


2

Me gusta usar "find" y "shasum" para este tipo de tarea. Dos invocaciones diferentes, 1 para la estructura y otra para los sha-1 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 "files-after.txt". Entonces

diff files-before.txt files-after.txt

0

Se me ocurren dos maneras de la cabeza:

  • fseventer es una aplicación que utiliza el marco FSEvents de Apple para ver el cambio del 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 (en algún lugar conveniente, como su escritorio) antes de realizar la acción. Luego puede usar FileMerge (viene con las utilidades del desarrollador) para comparar directorios.
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.