filecmp 1.6

Beispielbild-Oberflaeche

Beschreibung: filecmp ist ein von mir selbst geschriebenes Programm in Qt für Linux, welches einzelne Dateien in Verzeichnissen per Zeitstempel oder Bitweise überprüfen kann und einen Abgleich durchführen kann. In dem Sinne arbeitet es ähnlich wie die Konsolenprogramme timecmp und bytecmp mit dem Unterschied, daß man bei den Konsolenprogrammen ganze Verzeichnisse auswählt, während man bei filecmp ein oder mehrere Dateien eines Verzeichnisses für den Vergleich auswählt. Der Abgleich kann eigentlich mit jeder Art von Datei ausgeführt werden, aber speziell für Fotos gibt es noch einen Bildbetrachter im Programm integriert. Die Idee hinter dem Programm ist, daß man Fotos einer Kamera auf einer SD-Karte mit einem Backup-Verzeichnis abgleichen kann und sogar die Dateien von der SD-Karte gleich aus dem Programm heraus löschen kann um so wieder Platz auf der SD-Karte zu schaffen. In dem Sinne ist die Vorgehensweise:

  1. Überprüfen welche Dateien fehlen und ob sie den gleichen Zeitstempel haben.
  2. Überprüfen ob sie bitgenau identisch sind.
  3. Löschen der Ursprungsdateien.

Dabei geht man wie folgt vor: Zuerst öffnet man mit dem Button "Dir A" ein oder mehrere Dateien um sie zu vergleichen. Anschließend wählt man mit dem Button "Dir B" das Backup-Verzeichnis aus. Sofort nach der Auswahl des Backup-Verzeichnisses wird eine Überprüfung Anhand der Zeitstempel der Dateien vorgenommen. Es wird überprüft, ob die ausgewählten Dateien aus Dir A in Dir B vorhanden sind und wenn ja, ob der Zeitstempel gleich ist. Bei Gleichheit wird  =  unter Status angezeigt mit einem grünen Hintergrund. Sind die Dateien vom Zeitstempel her verschieden, ist der Hintergrund gelb und ein Pfeil zeigt an, welche Neuer ist um die alte Datei zu überschreiben. In der Spalte Show kann man mittels des Buttons "Show" beide Bilder anzeigen lassen und eventuell sehen, warum eines der Bilder neuer ist (vielleicht wurde es gedreht oder sonstwie verändert). Fehlt eines der Bilder wird ein roter Hintergrund angezeigt mit einem Pfeil um die fehlende Datei zu kopieren. Würde man jetzt auf den Synchronize-Button drücken, würde ein Abgleich stattfinden bei dem die Dateien mit grünem Gleichheitszeichen übersprungen werden und jene mit Pfeil in die entsprechende Richtung kopiert werden. Möchte man das Kopierverhalten ändern, kann man einfach mit der Maus auf die entsprechenden Symbole in Status klicken und mit jedem Klick ändert sich das Zeichen entweder zu einem Gleichheitszeichen, einem Pfeil nach links oder nach rechts. So kann man im Nachhinein zusätzliche Korrekturen vornehmen, welche Dateien kopiert oder überschrieben werden sollen.

Hat man beide Verzeichnisse abgeglichen, drückt man auf "Byte Compare" und die Dateien werden bitweise verglichen. Bei gedrehten Bildern kann es vorkommen, daß der Zeitstempel gleich ist, wodurch sie zuerst als gleich erscheinen, beim bitweisen Vergleich jedoch zeigt sich der Unterschied. Die Farben sind beim bitweisen Vergleich gegenüber dem Zeitvergleich etwas anders. Gleiche Dateien haben das Gleichheitszeichen mit grünem Hintergrund wie beim Zeitvergleich, während fehlende Dateien einen gelben Hintergrund haben mit der Schrift "Fehlt!". Unterschiedliche Dateien haben einen roten Hintergrund mit der Schrift "DIFF!".

Sind alle Dateien bitgenau identisch und benötigt man die Dateien aus Dir A nicht mehr, kann man mittels des Buttons "Delete Source" diese Dateien löschen. Hat man mpv installiert, wird nach einem bitweisen Vergleich eine Meldung abgespielt "Dateienvergleich beendet", sowie nach einer Synchronisation "Synchronisation abgeschlossen".

Noch ein Wort zum Bildbetrachter "Show Pictures": Wenn er geöffnet ist, kann man in der Mitte zwischen den Bildern mittels der Buttons  = ,  -> ,  <-  das Kopierverhalten in der Tabelle ändern. "Close" schließt den Betrachter und die Pfeile unterhalb der Bilder dienen zum Vor- und Zurückspringen durch die Dateiliste.

Das Programm steht unter der GPL und darf daher von jedem frei verwendet werden. Getestet wurde es unter Debian GNU/Linux bullseye und bookworm, könnte aber auch auf anderen Linux-Distributionen funktionieren. Für auftretende Fehler oder Schäden die das Programm verursacht, übernehme ich keinerlei Haftung, jedoch ist die Wahrscheinlichkeit, daß durch den Gebrauch das System nicht mehr funktioniert sehr gering, solange man damit keine Systemverzeichnisse abgleicht und unbeabsichtigt ein paar wichtige Dateien löscht.

Zum Download gibt es zwei komprimierte tar-Archive für die amd64-Architektur jeweils für die Debian Distributionen bullseye (Debian 11) und bookworm (Debian12). Sie enthalten den kompletten Quellcode, zusätzlich benötigte Dateien und eine ausführbare Binär Datei namens "filecmp".

Download

Debian 11 (bullseye) amd64 Debian 12 (bookworm) amd64
filecmp1.6-bullseye.tar.gz filecmp1.6-bookworm.tar.gz

Wer das Programm selbst kompilieren möchte, benötigt die Entwickler-Pakete von Qt5 und build-essential. Nach dem Entpacken des Archivs wechselt man in das Verzeichnis und gibt folgenden Befehl auf der Konsole ein:

# qmake; make

Das Ergebnis ist eine ausführbare Datei im Verzeichnis mit Namen filecmp.