Linux에 bdiff(1)가 있습니까?

Linux에 bdiff(1)가 있습니까?

Solaris에는 RAM 크기보다 큰 파일을 bdiff(1)읽을 수 있는 명령이 있습니다 (diff(1)문서).

Linux에도 비슷한 것이 있나요? 인터넷 검색을 시도했지만 bdiffUbuntu에서 어떤 패키지를 찾을 수 없습니다.

답변1

bdiff를 사용할 수 있는 것 같습니다.Linux에서는(적어도가보 도구 상자).

차이점

그러나 아마도 이 스위치에는 일반적인 이전 diff를 사용할 것입니다.

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

BSDIF

이를 확인하기는 어렵지만 이라는 도구를 찾았습니다.bsdiffbdiff이 도구는 Ubuntu에 있음을 확인 했습니다 apt-get install bsdiff.

왜 작동할까요?

의견에 있는 @EvanTeitelman에게 다시 한 번 감사드립니다. bsdiff위는 바이너리에 대한 diff 도구입니다. bsdiff대용량 파일을 처리할 수 있는 바이너리 비교 도구입니다. 정확히 얼마나 큰지는 불분명하다. 아래 링크에서 해당 사용법을 논의하는 스레드를 참조하세요.

차이점

활용하셔도 좋을 것 같아요차이점이것도 가능합니다. Rdiff는 매우 큰 파일을 처리할 수 있습니다.

  1. 파일에 대한 서명을 만듭니다.

    rdiff signature A sigs.txt
    
  2. 생성된 서명 파일 sigs.txt와 또 다른 대용량 파일 B를 사용하여 델타를 만듭니다.

    rdiff delta sigs.txt B deltaAB.txt
    
  3. A와 델타 파일 deltaAB.txt만 있는 경우 Delta에는 파일 B를 다시 만드는 데 필요한 모든 정보가 포함됩니다.

    B를 다시 생성하려면 다음을 실행합니다.

    rdiff patch A deltaAB.txt B
    

왜 작동합니까?

다음과 같은 제목의 블로그 게시물을 찾았습니다.더 나은 diff 또는 GNU diff에 메모리가 부족할 때 수행할 작업("diff: out of memory"), 4.5GB 파일의 rdiff는 약 66MB의 RAM만 소비한다고 보고합니다.

16진수

16진수16진수, 8진수, 2진수 또는 ASCII 텍스트 파일을 보고 편집하기 위한 응용 프로그램입니다. lfhex의 가장 큰 장점은 시스템 메모리보다 훨씬 큰 파일을 처리할 수 있다는 것입니다. 그러나 이는 GUI 도구입니다.

스크린샷

                  lfhex'ss]![lfhex'sss

인용하다

관련 정보