개요
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는 종료 코드를 통해 비교 결과를 알려주므로 스크립트에서 활용하기 좋습니다.
코드 | 의미 |
---|---|
0 | 두 파일이 동일 |
1 | 두 파일이 다름 |
2 | 접근 불가능한 파일 또는 옵션 오류 |
설치
cmp는 대부분의 리눅스 배포판에 `diffutils` 패키지의 일부로 기본 포함되어 있습니다. 별도의 설치가 필요하지 않습니다.
팁 & 주의사항
cmp 명령어 사용 시 유의할 점들을 정리했습니다.
팁
- cmp는 바이너리 파일 비교에 최적화되어 있습니다. 텍스트 파일의 내용 차이를 보려면 `diff`를 사용하는 것이 좋습니다.
- `cmp -s` 옵션을 사용하면 출력이 없어 스크립트에서 `if` 문이나 `&&`/`||` 연산자와 함께 사용하기 편리합니다.
- 바이트 위치는 1부터 시작하며, `cmp -l`로 출력되는 바이트 값은 8진수 표기입니다.