Wie kann ich Dateistrukturen vor und nach einer Softwareinstallation vergleichen?

Ich schreibe eine neue Formel für Homebrew für einige Software, die ich pflege, und als Teil meiner Tests möchte ich sicherstellen, dass Dateien bei der Installation nur an den richtigen Stellen hinzugefügt werden und dass alle Dateien bei der Deinstallation entfernt werden.

Was ist der beste Weg, Dateistrukturen vor und nach meinen Testinstallationen und -deinstallationen zu vergleichen?

Offensichtlich nicht das, wonach Sie gefragt haben, aber dennoch nützlich für eine ähnliche Aufgabe ist 'lsbom'.

Antworten (3)

Im Terminal fallen mir zwei Möglichkeiten ein:

  1. ls -R.

  2. tree directory-name/(nachdem Sie es installiert haben; dh brew install tree). Der Schrägstrich am Ende bewahrt die Anzeige von Sonderzeichen in der Datei, in der die Ausgabe gespeichert wird.

In beiden Fällen leiten Sie die Ausgabe vor und nach der Installation in eine Datei um und vergleichen die beiden Dateien möglicherweise mit Apple FileMerge.app, das mit Xcode geliefert wird.

Ich benutze gerne "find" und "shasum" für diese Art von Aufgabe. Zwei verschiedene Aufrufe, 1 für die Struktur und einer für die sha-1 der Dateien:

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

Führen Sie Ihre Installationen/Deinstallationen aus und verwenden Sie dann denselben Prozess für "files-after.txt". Dann

diff files-before.txt files-after.txt

Mir fallen spontan zwei Möglichkeiten ein:

  • fseventer ist eine App, die das FSEvents-Framework von Apple verwendet, um die Änderung des Dateisystems live zu beobachten. Lesen Sie unbedingt die Warnungen und Vorbehalte auf der Website des Entwicklers.
  • Erstellen Sie eine Kopie der relevanten Verzeichnisse (an einem geeigneten Ort, z. B. auf Ihrem Desktop), bevor Sie die Aktion ausführen. Sie können dann FileMerge (im Lieferumfang der Entwickler-Dienstprogramme enthalten) verwenden, um Verzeichnisse zu vergleichen.