bdiff wydaje się być dostępny w systemie Linux (przynajmniej jako część Heirloom Toolchest ).
różn
Prawdopodobnie użyłbym jednak zwykłego starego diff z tym przełącznikiem:
diff --speed-large-files bigfileA bigfileB
Dlaczego to nie działa?
Zobacz komentarz @EvanTeitelman, --speed-large-files
nie wpływa na sposób ładowania plików do pamięci.
Można wykazać / potwierdzić, że nie działa, używając następującego polecenia:
fallocate -l 10G testa; fallocate -l 10G testb && \
diff --speed-large-files -a testa testb
bsdiff
Trudno to potwierdzić, ale znalazłem narzędzie o nazwie, bsdiff
które pochodzi bdiff
. Potwierdziłem, że to narzędzie jest w Ubuntu, po prostu apt-get install bsdiff
.
Dlaczego to może działać?
Jeszcze raz dziękuję @EvanTeitelman w komentarzach, bsdiff
powyższe jest narzędziem do różnicowania plików binarnych. bsdiff
to binarne narzędzie do porównywania i może obsługiwać duże pliki. Nie jest jasne, jak duży. Zobacz poniższe linki do wątku, który omawia jego użycie.
rdiff
Myślę, że możesz również użyć rdiff, aby to zrobić. Rdiff radzi sobie z bardzo dużymi plikami.
Utwórz podpis jednego pliku:
rdiff signature A sigs.txt
Użyj wygenerowanego pliku podpisu sigs.txt i drugiego dużego pliku B, aby utworzyć różnicę:
rdiff delta sigs.txt B deltaAB.txt
Delta zawiera wszystkie informacje potrzebne do odtworzenia pliku B, gdy masz tylko A i plik delta deltaAB.txt.
Aby odtworzyć B, uruchom:
rdiff patch A deltaAB.txt B
Dlaczego to działa?
Znalazłem ten post na blogu zatytułowany: Lepsza pamięć lub co robić, gdy GNU diff zabraknie pamięci („diff: pamięć wyczerpana”) , która donosi, że pliki o pojemności 4,5 GB zużyły tylko ~ 66 MB pamięci RAM.
lfhex
lfhex to aplikacja do przeglądania i edycji plików w tekście szesnastkowym, ósemkowym, binarnym lub ascii. Główną zaletą lfhex jest możliwość pracy z plikami znacznie większymi niż pamięć systemowa. Jest to jednak narzędzie GUI.
zrzut ekranu
Bibliografia