> 텍스트 처리 및 검색 > cmp

cmp: 두 파일의 바이트 단위 비교

cmp 명령어는 두 파일을 바이트(byte) 단위로 비교하여, 파일이 다른 첫 번째 위치와 줄 번호를 알려줍니다. 간단한 바이너리 파일이나 텍스트 파일의 일치 여부를 빠르게 확인할 때 유용합니다.

개요

cmp는 diff 명령어보다 훨씬 간단한 비교 도구입니다. diff가 파일의 차이점을 줄 단위로 상세하게 보여주는 반면, cmp는 단순히 '두 파일이 다르다'는 사실과 함께 차이가 발생하는 첫 번째 위치(바이트 오프셋)와 줄 번호만을 출력합니다. 따라서 설정 파일이나 바이너리 파일처럼 내용 전체를 볼 필요 없이 일치 여부만 확인하고자 할 때 매우 효과적입니다.

주요 특징

cmp 명령어의 주요 특징은 다음과 같습니다.

  • 바이트 단위로 파일을 비교합니다.
  • 차이가 발생하는 첫 번째 위치와 줄 번호만 출력합니다.
  • 출력이 간단하여 스크립트에서 파일 일치 여부를 확인하는 용도로 적합합니다.
  • 바이너리 파일 비교에 특히 유용합니다.

diff와의 차이점

cmp와 diff는 모두 파일 비교 도구지만, 목적과 출력 방식에서 차이가 있습니다.

  • cmp: 바이트 단위 비교, 첫 번째 차이점만 보고, 바이너리 파일 비교에 적합.
  • diff: 줄 단위 비교, 모든 차이점을 상세히 보고, 텍스트 파일 비교에 적합.

주요 옵션

자주 사용하는 cmp 명령어의 옵션을 목적에 따라 그룹화했습니다.

1) 비교 옵션

2) 도움말

생성된 명령어:

명령어를 조합해 보세요.

설명:

`cmp` 명령어를 실행합니다.

위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.

사용 예시

cmp 명령어의 다양한 사용 예시를 통해 기능을 익혀보세요.

두 텍스트 파일 비교

echo 'Hello World' > file1.txt
echo 'Hello World' > file2.txt
cmp file1.txt file2.txt

동일한 텍스트 파일 두 개를 비교하면 아무것도 출력되지 않습니다.

다른 두 텍스트 파일 비교

echo 'Hello World' > file1.txt
echo 'Hello, World' > file2.txt
cmp file1.txt file2.txt

파일 내용이 다를 경우, 첫 번째 차이점의 바이트 위치와 줄 번호를 출력합니다.

바이너리 파일 비교

cmp /bin/ls /bin/cmp

바이너리 파일의 일치 여부를 간단히 확인합니다. 출력이 없으면 동일한 파일입니다.

스크립트에서 사용

cmp -s file1.txt file2.txt && echo '파일이 동일합니다.' || echo '파일이 다릅니다.'

cmp의 종료 코드(exit code)를 사용하여 파일 일치 여부에 따라 분기 처리를 합니다.

종료 코드

cmp는 종료 코드를 통해 비교 결과를 알려주므로 스크립트에서 활용하기 좋습니다.

cmp 종료 상태값
코드 의미
0 두 파일이 동일
1 두 파일이 다름
2 접근 불가능한 파일 또는 옵션 오류

설치

cmp는 대부분의 리눅스 배포판에 `diffutils` 패키지의 일부로 기본 포함되어 있습니다. 별도의 설치가 필요하지 않습니다.

팁 & 주의사항

cmp 명령어 사용 시 유의할 점들을 정리했습니다.

  • cmp는 바이너리 파일 비교에 최적화되어 있습니다. 텍스트 파일의 내용 차이를 보려면 `diff`를 사용하는 것이 좋습니다.
  • `cmp -s` 옵션을 사용하면 출력이 없어 스크립트에서 `if` 문이나 `&&`/`||` 연산자와 함께 사용하기 편리합니다.
  • 바이트 위치는 1부터 시작하며, `cmp -l`로 출력되는 바이트 값은 8진수 표기입니다.

관련 명령어

기능적으로 유사하거나 함께 자주쓰이는 명령어들입니다.


동일 카테고리 명령어