압축 해제 없이 bzip2 파일 바로 비교! 우분투 bzcmp 명령어 완벽 가이드

개요

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

bzip2 패키지 확인 및 실습용 압축 파일 생성

bzcmp 명령어 실습 진행을 위해 관련 도구가 포함된 bzip2 패키지를 설치합니다.

apt-get update -qq && apt-get install -y bzip2

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

echo ‘Linux bzcmp test line 1’ > sample1.txt && echo ‘Linux bzcmp test line 1’ > sample2.txt && echo ‘Linux bzcmp test line 2’ > sample3.txt

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

bzip2 -k sample1.txt sample2.txt sample3.txt && ls -l sample*.bz2

동일한 압축 파일 비교 및 종료 코드($?) 검증

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

bzcmp sample1.txt.bz2 sample2.txt.bz2

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

echo “Exit Code: $?”

서로 다른 압축 파일 비교 및 차이점 바이트 검출

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

bzcmp sample1.txt.bz2 sample3.txt.bz2

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

echo “Exit Code: $?”

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

bzcmp -l sample1.txt.bz2 sample3.txt.bz2

압축 파일과 일반 텍스트 파일 간 직접 비교 및 정리

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

bzcmp sample1.txt.bz2 sample1.txt

비교용 텍스트 파일을 새로 생성하고 압축 파일과 내용이 서로 다를 때의 결과를 확인하기 위해 echo 'Different text' > sample_diff.txt && bzcmp sample1.txt.bz2 sample_diff.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 명령어를 실행합니다.

rm -f sample1.txt sample2.txt sample3.txt sample*.bz2 sample_diff.txt

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