Antworten:
Eine Diskettengerätedatei ist eine Datei. Jeder Befehl, der Dateien liest, funktioniert damit.
cmp /dev/fd0 image.fat
Übergeben Sie die -l
Option, wenn Sie eine Liste aller unterschiedlichen Bytes wünschen. Für den menschlichen Verzehr ist dies meistens in der Form nützlich
cmp -l /dev/fd0 image.fat | wc -l
um zu wissen, wie viele Bytes sich unterscheiden. Führen cmp -s /dev/fd0 image.fat
Sie es aus, wenn Sie keine Ausgabe wünschen, nur den Rückgabestatus 0, wenn die beiden Dateien identisch sind, und 1, wenn sie unterschiedlich sind.
Dies vergleicht die Bilder Byte für Byte. Wenn die Diskette und das Image Dateien enthalten und Sie nur die Dateien und nicht die Metadaten (Dateidaten usw.) oder den leeren Speicherplatz vergleichen möchten, hängen Sie die Diskette und das Image ein und vergleichen Sie die Verzeichnisbäume.
Ich habe keine Diskette mehr zu überprüfen, aber ich würde raten:
diff <( dd if=/dev/fd0 ) floppy.img
Das <( dd ..... )
liest den Inhalt der Diskette und verhält sich so, als wäre es eine Datei für diff
. Dann vergleicht diff es mit der Datei.
cmp
ist diff
in diesem speziellen Fall ein Ersatz für Drop-In . Ein großes Lob an Gilles für den cmp
Hinweis.
<(dd if=dev/fd0) is an awfully complicated way of writing
/ dev / fd0 . Are you sure you didn't mean to write
diff <(cat / dev / fd0 | dd if = - | tee / dev / fd / 3 3> & 1 | tr az az | tail -n +1) floppy.img ? And on top of that
diff` neigt dazu, nicht mit Binärdaten umzugehen Daten gut, cmp
ist hier das richtige Werkzeug.
<( dd if=/dev/fd0 )
. Aber OK, Sie haben Ihren Standpunkt klargestellt. Ich war mir einfach nicht sicher, ob eine Ebene /dev/fd0
vom Gerät lesen würde, anstatt den Geräteknoten selbst zu überprüfen. Deshalb habe ich die schwarze Magie hinzugefügt <( ... )
.
<(...)
verwenden; o)