bytecmp 1.4

Beschreibung: bytecmp ist ein von mir selbst geschriebenes, kleines Programm für Linux in C/C++, welches ganze Verzeichnisse inklusive Unterverzeichnissen bitweise vergleichen kann. Das Programm benötigt keinerlei Installation. Man kopiert die ausführbare Datei einfach unter /usr/bin und kann den Befehl ohne Angabe eines Pfades direkt in der Konsole verwenden.

Syntax: bytecmp [-v/--version] Verzeichnis1/ Verzeichnis2/

bytecmp vergleicht den Inhalt des Verzeichnisses 1 mit dem Inhalt des Verzeichnisses 2 inkl. sämtlicher Unterordner. Dazu bedient es sich der Standard-Konsolenprogramme "find" (zum auflisten der Dateien) und "cmp" zum bitweisen vergleichen der Dateien. Dabei wird zuerst Verzeichnis 1 eingelesen und anschließend Verzeichnis 2. Dann erfolgt ein Vergleich bei dem sämtliche Dateien aus Verzeichnis 1 inklusive aller Unterordner durchlaufen werden und es wird überprüft, ob Dateien in Verzeichnis 2 fehlen, oder wenn sie vorhanden sind, ob sie bitweise identisch sind oder nicht. Da lediglich die Dateien aus Verzeichnis 1 durchlaufen werden, könnte man auch sagen, daß bytecmp in dem Sinne asynchron arbeitet. Möchte man beide Verzeichnisse überprüfen ob Dateien fehlen, muß man bytecmp erneut ausführen mit geänderter Reihenfolge der Verzeichnisse. Welche Datei momentan geprüft wird, wird auf der Konsole ausgegeben. Sind die Dateien identisch erfolgt keinerlei weitere Ausgabe zu der Datei, nur wenn die Datei fehlt oder unterschiedlich ist, erfolgt direkt während der Überprüfung ein Hinweis. Am Ende wird eine Zusammenfassung ausgegeben, wieviele Dateien geprüft wurden (Gesamtanzahl beider Verzeichnisse), wieviele davon unterschiedlich waren oder gefehlt haben.

In Kombination mit timecmp kann man mit bytecmp hervorragend Verzeichnisse überprüfen, ob z.B. Kopieraktionen korrekt ausgeführt wurden und die kopierten Dateien erfolgreich geschrieben wurden, also bitgenau identisch sind. Dabei kann man timecmp zur Überprüfung verwenden ob alle Dateien vorhanden sind und falls nicht, die entsprechende Kopieraktion ausführen, während bytecmp anschließend überprüfen kann, ob sie korrekt geschrieben wurden.

Das Programm steht unter der GPL und darf daher von jedem frei verwendet werden. Geschrieben und getestet wurde es unter Debian GNU/Linux, könnte aber auch auf anderen Linux-Distributionen funktionieren, so fern die Standard-Konsolen-Programme find und cmp ebenfalls zur Verfügung stehen. Für auftretende Fehler, Schäden oder Datenverlust die das Programm verursacht, übernehme ich keinerlei Haftung. Die Benutzung erfolgt auf eigene Gefahr, jedoch ist die Wahrscheinlichkeit, daß nach dem Gebrauch das System nicht mehr funktioniert sehr gering, da das Programm lediglich mittels find Dateien sucht und anschließend mittels cmp bitweise vergleicht.

Wer selbst kompilieren will, braucht den Gnu-C++-Compiler (enthalten in dem Paket build-essential) und kann mittels folgendem Befehl eine ausführbare Datei erstellen:

# g++ bytecmp.cpp -o bytecmp

Die komprimierten tar-Archive enthalten den Quellcode (eine *.cpp Datei) und eine ausführbare Datei für die jeweilige Debian Distribution bullseye und bookworm.


Downloads

Debian 11 (bullseye) amd64 Debian 12 (bookworm) amd64
bytecmp1.4-bullseye.tar.gz bytecmp1.4-bookworm.tar.gz