개요
우분투 환경에서 bzip2로 압축된 대용량 파일을 매번 압축 해제하지 않고도 빠르게 내용을 대조할 수 있는 bzcmp 명령어의 핵심 활용법을 알아봅니다. 기본적인 일치 여부 판별부터 종료 코드 기반 검증, 비압축 파일과의 교차 비교까지 실무 중심 실습 예제로 정리합니다.
bzip2 패키지 확인 및 실습용 압축 파일 생성
bzcmp 명령어 실습 진행을 위해 관련 도구가 포함된 bzip2 패키지를 설치합니다.

bzcmp 비교 실습을 위해 내용이 동일한 텍스트 파일 2개와 내용이 다른 파일 1개를 생성합니다.

비교 실습에 사용할 .bz2 압축 파일을 원본 보존 옵션(-k)과 함께 생성하고 정상적으로 만들어졌는지 확인하기 위해 bzip2 -k sample1.txt sample2.txt sample3.txt && ls -l sample*.bz2 명령어를 실행합니다.

동일한 압축 파일 비교 및 종료 코드($?) 검증
내용이 동일한 두 압축 파일의 차이점을 비교하기 위해 bzcmp sample1.txt.bz2 sample2.txt.bz2 명령어를 실행합니다.
두 파일의 내용이 완벽하게 일치하므로 터미널에 아무런 메시지도 출력되지 않습니다.

직전에 실행한 bzcmp 명령어의 처리 결과를 확인하기 위해 echo "Exit Code: $?" 명령어를 실행합니다.
성공을 의미하는 종료 코드 0이 출력되어 두 압축 파일의 내용이 동일함을 검증할 수 있습니다.

서로 다른 압축 파일 비교 및 차이점 바이트 검출
내용이 서로 다른 두 압축 파일의 차이점을 확인하기 위해 bzcmp sample1.txt.bz2 sample3.txt.bz2 명령어를 실행합니다.
두 파일의 내용이 일치하지 않으므로 처음으로 불일치가 발생한 바이트 번호와 행 번호가 터미널에 출력됩니다.

직전에 실행한 bzcmp 명령어의 종료 코드를 확인하기 위해 echo "Exit Code: $?" 명령어를 실행합니다.
내부적으로 차이점이 감지되었음에도 정상적으로 비교 처리를 완료했음을 나타내는 종료 코드가 출력됩니다.

차이가 발생하는 모든 위치의 바이트 번호와 각 파일의 바이트 값을 8진수로 확인하기 위해 bzcmp -l sample1.txt.bz2 sample3.txt.bz2 명령어를 실행합니다.
내부적으로 cmp -l 방식을 사용하여 차이점이 감지된 10진수 바이트 오프셋과 두 파일의 서로 다른 8진수 바이트 값이 순서대로 출력됩니다.

압축 파일과 일반 텍스트 파일 간 직접 비교 및 정리
압축된 .bz2 파일과 원본 텍스트 파일의 내용이 동일한지 직접 비교하기 위해 bzcmp sample1.txt.bz2 sample1.txt 명령어를 실행합니다.
두 파일의 내용이 완전히 일치하므로 터미널에 아무런 메시지도 출력되지 않습니다.

비교용 텍스트 파일을 새로 생성하고 압축 파일과 내용이 서로 다를 때의 결과를 확인하기 위해 echo 'Different text' > sample_diff.txt && bzcmp sample1.txt.bz2 sample_diff.txt 명령어를 실행합니다.
내용 불일치가 감지되어 첫 번째 차이점이 발생한 바이트 및 행 번호가 출력됩니다.

실습을 마치고 생성했던 모든 임시 텍스트 파일과 .bz2 압축 파일을 삭제하여 환경을 정리하기 위해 rm -f sample1.txt sample2.txt sample3.txt sample*.bz2 sample_diff.txt 명령어를 실행합니다.

지금까지 우분투에서 압축 해제 없이 bzip2 파일의 차이점을 빠르게 비교할 수 있는 bzcmp 명령어에 대해 간단하게 정리해보았습니다.
대용량 압축 파일이나 백업 로그를 점검할 때 불필요한 디스크 낭비 없이 효율적으로 활용해 보시기 바랍니다.