LU11.A03: Duplikate suchen
Schreibe ein Skript, das die Dateien in zwei verschiedenen Ordnern vergleicht.
Bilde dazu ein 3er Team, wobei jedes Mitglied einen anderen Lösungsansatz wählt:
- Reines Bash-Skript ohne Python.
- Reines Python-Skript ohne den Einsatz von Bash-Befehlen.
- Ein Python-Skript mit integrierten Bash-Befehlen.
Vergleicht am Ende eure Lösungen. Welche Vor-/Nachteile haben die einzelnen Lösungsansätze?
Ausgangslage
Dein Skript soll die Dateien in zwei verschiedenen Ordnern vergleichen. Folgende Situationen sollen erkannt werden:
- Existiert die Datei nur im ersten, nur im zweiten oder beiden Ordnern?
- Falls die Datei in beiden Ordnern existiert …
- … sind beide Dateien gleich gross?
- … haben beide Dateien das gleiche Änderungsdatum?
Je nach Situation zeigt das Skript eine oder mehrere der folgenden Ausgaben. Ausgaben:
- Datei Dateiname nur in Ordnername
- Datei Dateiname in Ordnername ist grösser
- Datei Dateiname in Ordnername ist neuer
- Datei Dateiname ist in beiden Ordnern identisch
Die fett geschriebenen Begriffe sind Platzhalter für den tatsächlichen Datei- und Ordnernamen.
Anforderungen
Argumente
Bei Aufruf des Skripts gibt der Benutzer zwei Argumente mit:
- Pfad des ersten Ordners
- Pfad des zweiten Ordners
Fehlermeldungen
- Falls der Benutzer nicht genau 2 Argumente mitgibt, erscheint ein Hinweis zur korrekten Syntax (usage). Anschliessend wird das Skript beendet.
- Falls einer der Ordner nicht existiert, wird eine Fehlermeldung angezeigt. Nach dieser Fehlermeldung wird das Skript beendet.
Testfälle / Testdaten
Sie müssen die Funktionalität des Skripts vollständig prüfen. Definieren Sie dazu die nötigen Testfälle und Testdaten. Folgende Situationen müssen geprüft werden:
- Ungültige Argumente (3 Testfälle)
- Zu wenige Argumente angegeben.
- Zu viele Argumente angegeben.
- Ein Ordner existiert nicht.
- Vergleichen der Dateien (7 Testfälle)
- Datei existiert nur im ersten / zweiten Ordner.
- Datei im ersten / zweiten Ordner ist grösser.
- Datei im ersten / zweiten Ordner ist neuer.
- Dateien sind identisch.