bdiff semble être disponible sur Linux (au moins dans le cadre de Heirloom Toolchest ).
diff
J'utiliserais probablement juste un vieux diff régulier avec ce commutateur cependant:
diff --speed-large-files bigfileA bigfileB
Pourquoi ça ne marche pas?
Voir le commentaire de @EvanTeitelman, --speed-large-files
n'affecte pas la façon dont les fichiers sont chargés en mémoire.
Peut être démontré / confirmé pour ne pas fonctionner en utilisant la commande suivante:
fallocate -l 10G testa; fallocate -l 10G testb && \
diff --speed-large-files -a testa testb
bsdiff
Difficile à confirmer, mais j'ai trouvé un outil appelé bsdiff
qui dérive de bdiff
. J'ai confirmé que cet outil est dans Ubuntu, simplement apt-get install bsdiff
.
Pourquoi ça pourrait marcher?
Encore merci à @EvanTeitelman dans les commentaires, ce qui bsdiff
précède est un outil de diff pour les fichiers binaires. bsdiff
est un outil de comparaison binaire et peut traiter des fichiers volumineux. On ne sait pas exactement quelle taille. Voir les liens suivants vers un fil qui explique son utilisation.
rdiff
Je pense que vous pouvez également utiliser rdiff pour le faire également. Rdiff est capable de gérer de très gros fichiers.
Créez une signature d'un fichier:
rdiff signature A sigs.txt
Utilisez le fichier de signature généré sigs.txt et l'autre gros fichier B pour créer le delta:
rdiff delta sigs.txt B deltaAB.txt
Delta contient toutes les informations dont vous avez besoin pour recréer le fichier B lorsque vous avez juste A et le fichier delta deltaAB.txt.
Pour recréer B, exécutez:
rdiff patch A deltaAB.txt B
Pourquoi ça marche?
J'ai trouvé ce billet de blog intitulé: Un meilleur diff ou ce qu'il faut faire lorsque diff diff GNU manque de mémoire ("diff: mémoire épuisée") , qui signale qu'un rdiff de fichiers de 4,5 Go ne consomme que ~ 66 Mo de RAM.
lfhex
lfhex est une application pour visualiser et éditer des fichiers en texte hexadécimal, octal, binaire ou ascii. La principale force de lfhex est sa capacité à travailler avec des fichiers beaucoup plus volumineux que la mémoire système. C'est un outil GUI cependant.
capture d'écran
Références