개요
두 파일의 바이트 단위 차이점을 신속하게 확인하는 리눅스 cmp 명령어의 기본 사용법과 핵심 옵션을 실습합니다. 텍스트 파일은 물론 바이너리 파일 비교와 셸 스크립트 조건문 활용 팁까지 한눈에 살펴봅니다.
기본 비교: 첫 번째 차이점 위치(바이트·라인) 확인
cmp 명령어 실습을 위한 전용 디렉터리를 생성하고 해당 위치로 이동하기 위해 mkdir -p ~/cmp_test && cd ~/cmp_test 명령어를 실행합니다.

파일 비교 실습에 사용할 동일한 내용의 file1.txt, file2.txt와 내용이 일부 다른 file3.txt를 생성하기 위해 echo 명령어를 실행합니다.

cmp 명령어는 두 파일을 바이트 단위로 비교하며, 내용이 완전히 동일할 경우 화면에 아무것도 출력하지 않고 정상 종료합니다.
⚙️ [주요 옵션]
-b : 차이가 발생하는 바이트의 문자와 값을 함께 출력합니다.-l : 파일에서 차이가 나는 모든 바이트의 위치와 값을 목록 형태로 출력합니다.-n : 지정한 바이트 수까지만 두 파일을 비교합니다.-i : 파일 시작 부분에서 지정한 바이트 수만큼 건너뛰고 비교를 시작합니다.-s : 화면에 아무런 메시지도 출력하지 않고 종료 상태 코드(0 또는 1)만 반환합니다.

cmp file1.txt file3.txt 명령어를 실행하여 서로 다른 내용을 가진 두 파일을 비교합니다.
내용이 일치하지 않을 경우 처음으로 차이가 발생한 바이트 번호와 행(line) 번호가 출력됩니다.

상세 차이 확인: 모든 바이트 차이점과 문자 출력 (-l, -b)
바이트 단위 차이점을 세부적으로 확인하기 위해 서로 다른 알파벳이 포함된 f1.txt와 f2.txt 파일을 생성합니다.

cmp -l f1.txt f2.txt 명령어를 실행하여 두 파일에서 차이가 나는 모든 바이트의 위치와 각 파일의 8진수 바이트 값을 출력합니다.
3번째 바이트에서 첫 번째 파일은 8진수 103(C), 두 번째 파일은 8진수 130(X)으로 서로 다름을 보여줍니다.

cmp -b f1.txt f2.txt 명령어를 실행하면 처음으로 차이가 발생한 위치의 8진수 값과 함께 실제 바이트 문자를 출력합니다.
3번째 바이트에서 103(C)과 130(X)의 차이가 발생했음을 직관적으로 파악할 수 있습니다.

cmp -lb f1.txt f2.txt 명령어를 실행하여 차이가 발생하는 모든 바이트 목록과 해당 위치의 문자를 함께 출력합니다.
바이트 번호, 8진수 코드, 실제 ASCII 문자가 한 줄로 정리되어 파일 내용의 차이를 정확하게 식별할 수 있습니다.

자동화 스크립트 연동: 무음 모드와 종료 코드 검사 (-s)
내용이 동일한 두 파일을 -s 옵션으로 비교하여 화면 출력을 숨기고 종료 상태 코드를 확인합니다.
두 파일의 내용이 완전히 일치하므로 정상 종료를 의미하는 코드인 0이 반환됩니다.

서로 다른 내용을 가진 두 파일을 -s 옵션으로 비교하여 화면 출력을 억제하고 종료 코드를 확인합니다.
파일 간에 차이점이 존재하므로 불일치를 나타내는 종료 코드 1이 반환됩니다.

셸 스크립트의 if 조건문에 cmp -s 명령어를 적용하여 두 파일의 일치 여부에 따라 분기 처리를 수행합니다.
두 파일의 내용이 완전히 같으므로 조건이 참(종료 코드 0)으로 판정되어 일치 메시지가 출력됩니다.

비교 범위 제어: 바이트 건너뛰기(-i) 및 최대 바이트 제한(-n)
비교 범위 제어 실습을 위해 접두사 부분은 다르고 뒷부분 내용은 동일한 data1.txt와 data2.txt 파일을 생성하기 위해 echo 명령어를 실행합니다.

cmp data1.txt data2.txt 명령어를 실행하여 두 파일을 기본 방식으로 비교합니다.
첫 번째 글자부터 서로 다르기 때문에 1번째 바이트, 1번째 행에서 차이가 발생했다는 메시지가 출력됩니다.

-i 7 옵션을 사용하여 두 파일의 앞쪽 7바이트를 건너뛰고 비교를 시작합니다.
건너뛴 이후의 내용(Alpha_Data)은 두 파일이 완전히 일치하므로 화면에 아무런 메시지도 출력하지 않고 정상 종료합니다.

-n 6 옵션을 사용하여 파일의 시작 위치부터 최대 6바이트까지만 제한하여 비교를 진행합니다.
지정된 6바이트 구간 내에서 첫 글자부터 서로 다르므로 1번째 바이트에서 차이가 발생했다는 메시지가 출력됩니다.

지금까지 리눅스 cmp 명령어를 활용한 파일 바이트 단위 비교 방법과 주요 옵션별 실무 활용 팁을 간단하게 정리해보았습니다.
대용량 파일이나 바이너리 파일의 일치 여부를 빠르게 검증해야 할 때 유용하게 활용해보세요.