bdiff scheint unter Linux verfügbar zu sein (zumindest als Teil der Heirloom Toolchest ).
diff
Ich würde wahrscheinlich nur normales altes Diff mit diesem Schalter verwenden:
diff --speed-large-files bigfileA bigfileB
Warum funktioniert es nicht?
Siehe Kommentar von @EvanTeitelman, --speed-large-files
hat keinen Einfluss darauf, wie Dateien in den Speicher geladen werden.
Kann mit dem folgenden Befehl nachgewiesen / bestätigt werden, dass er nicht funktioniert:
fallocate -l 10G testa; fallocate -l 10G testb && \
diff --speed-large-files -a testa testb
bsdiff
Es ist schwer, dies zu bestätigen, aber ich habe ein Tool namens gefunden, bsdiff
das von abgeleitet ist bdiff
. Ich habe bestätigt, dass dieses Tool einfach in Ubuntu ist apt-get install bsdiff
.
Warum könnte es funktionieren?
Nochmals vielen Dank an @EvanTeitelman in den Kommentaren, das bsdiff
obige ist ein Diff-Tool für Binärdateien. bsdiff
ist ein binäres Diff-Tool und kann mit großen Dateien umgehen. Es ist unklar, wie groß. Siehe die folgenden Links zu einem Thread, in dem die Verwendung erläutert wird.
rdiff
Ich denke, Sie könnten auch rdiff verwenden , um dies zu tun. Rdiff kann mit sehr großen Dateien umgehen.
Erstellen Sie eine Signatur einer Datei:
rdiff signature A sigs.txt
Verwenden Sie die generierte Signaturdatei sigs.txt und die andere große Datei B, um das Delta zu erstellen:
rdiff delta sigs.txt B deltaAB.txt
Delta enthält alle Informationen, die Sie benötigen, um Datei B neu zu erstellen, wenn Sie nur A und die Delta-Datei deltaAB.txt haben.
Führen Sie Folgendes aus, um B neu zu erstellen:
rdiff patch A deltaAB.txt B
Warum funktioniert es?
Ich fand diesen Blog-Beitrag mit dem Titel: Ein besserer Diff oder was zu tun ist, wenn der GNU-Diff nicht genügend Speicher hat ("diff: Speicher erschöpft") , der besagt, dass ein Riff von 4,5 GB-Dateien nur ~ 66 MB RAM verbraucht.
lfhex
lfhex ist eine Anwendung zum Anzeigen und Bearbeiten von Dateien in hexadezimalem, oktalem, binärem oder ASCII-Text. Die Hauptstärke von lfhex ist die Fähigkeit, mit Dateien zu arbeiten, die viel größer als der Systemspeicher sind. Es ist jedoch ein GUI-Tool.
Bildschirmfoto
Verweise