Есть ли bdiff (1) в Linux?

Исполняемый файл должен быть setuid и принадлежавший корню:

$ ls -la /usr/bin/sudo
---s--x--x 2 root root 173154 Oct 19  2010 /usr/bin/sudo

Ваш двоичный файл пропускает одну из тех черт. Сделайте это (как корень):

# chown root /usr/bin/sudo
# chmod u+xs /usr/bin/sudo
9
27.05.2013, 14:33
1 ответ

bdiff, кажется, доступен на Linux (по крайней мере, как часть Семейной реликвии Toolchest).

разность

Я, вероятно, просто использовал бы регулярную старую разность с этим переключателем однако:

diff --speed-large-files bigfileA bigfileB

Почему это не работает?

См. комментарий @EvanTeitelman, --speed-large-files не влияет, как файлы загружаются в память.

Может демонстрироваться/подтверждаться для не работы с помощью следующей команды:

fallocate -l 10G testa; fallocate -l 10G testb && \
        diff --speed-large-files -a testa testb

bsdiff

Трудно для подтверждения этого, но я нашел инструмент названным bsdiff который происходит из bdiff. Я подтвердил, что этот инструмент находится в Ubuntu, просто apt-get install bsdiff.

Почему это могло бы работать?

Снова спасибо @EvanTeitelman в комментариях, bsdiff выше различный инструмент для двоичных файлов. bsdiff двоичный различный инструмент и может иметь дело с большими файлами. Это неясно как большой. Посмотрите следующие ссылки на поток, которые обсуждают, это - использование.

rdiff

Я думаю, что Вы могли также использовать rdiff, чтобы сделать это также. Rdiff может иметь дело с очень большими файлами.

  1. Создайте подпись одного файла:

    rdiff signature A sigs.txt
    
  2. Используйте сгенерированный файл подписи sigs.txt и другой большой файл B для создания дельты:

    rdiff delta sigs.txt B deltaAB.txt
    
  3. Delta содержит всю информацию, необходимо воссоздать файл B, когда Вы имеете просто A и файл дельты deltaAB.txt.

    Для воссоздания B работайте:

    rdiff patch A deltaAB.txt B
    

Почему это работает?

Я нашел это сообщение в блоге названным: Лучшая разность Или Что Сделать, Когда разность GNU Исчерпывает Память ("разность: память исчерпала"), который сообщает, что rdiff файлов на 4.5 ГБ только использовал ~66MB RAM.

lfhex

lfhex является приложением для просмотра и редактирования файлов в шестнадцатеричном числе, восьмеричном, двоичном, или тексте ASCII. Основная сила lfhex, это - способность работать с файлами, намного больше, чем системная память. Это - инструмент GUI как бы то ни было.

снимок экрана

                  ss of lfhex]![ss of lfhex

Ссылки

13
27.01.2020, 20:06
  • 1
    Хотя это не всегда документируется, разность GNU позволяет Вам использовать -H как синоним для --speed-large-files. –   27.05.2013, 15:10
  • 2
    bsdiff двоичный различный инструмент, не инструмент разности большого файла. –   27.05.2013, 15:17
  • 3
    К сожалению, это кажется как будто --speed-large-files флаг не влияет на способ, которым разность GNU загружает файлы в память. Попытайтесь работать fallocate -l 10G testa; fallocate -l 10G testb && diff --speed-large-files -a testa testb подтвердить это. (Или смотрите на исходный код.) –   27.05.2013, 15:25
  • 4
    мне удалось создать bdiff от Семейной реликвии Toolchest после замены /sbin/sh /bin/sh в make-файлах. Теперь, когда я пытаюсь выполнить его на месте, я добираюсь bdiff: Can not execute '/usr/5bin/diff'. Извините, я не хочу устанавливать что-либо на /usr/5bin/. Это не эффективное решение. Другие опции, упомянутые здесь, не работают на меня, потому что я хочу к глазному яблоку различия как текст. –  Christian Pietsch 02.02.2015, 19:57
  • 5
    PS: Удивительно, lfhex -c file1 file2 работы хорошо для меня после основы установки View-> Editing –> ASCII для обеих областей. –  Christian Pietsch 02.02.2015, 20:13

Теги

Похожие вопросы