cmp — 바이트 단위 비교
Linux / 리눅스 기본 명령어 / cmp.html
두 파일을 바이트 단위로 비교해 첫 차이를 알려 주는 명령어.
기본 정보
| 명령어 이름 | cmp |
|---|---|
| 한 줄 소개 | 두 파일을 바이트 단위로 비교해 첫 차이를 알려 주는 명령어. |
| 제공 | GNU diffutils |
| 공식 문서 | https://man7.org/linux/man-pages/man1/cmp.1.html |
| 지원 운영체제 | Linux, macOS, BSD, WSL |
| 설치 여부 | 기본 탑재 |
| 분류 | 리눅스 기본 명령어 (태그: 리눅스 기본 명령어 (태그: cmp, 비교, 바이트, diff)) |
이 명령어는 무엇인가?
cmp는 두 파일을 앞에서부터 바이트 단위로 비교하고, 처음 다른 위치와 내용을 보고합니다. 텍스트 차이를 줄 단위로 보여 주는 diff와 목적이 다릅니다.
-s 옵션은 출력 없이 종료 코드만 반환하므로 스크립트에서 동일 여부를 판정할 때 적합합니다. 바이너리 파일이나 압축 파일이 같은지 확인할 때 특히 유용합니다.
어떤 문제를 해결하는가?
- 복사한 파일이 원본과 동일한지 확인할 때
- 압축 파일이나 바이너리를 비교할 때
- 스크립트에서 파일 동일 여부를 판정할 때
- diff가 줄 단위라 판별이 어려울 때
주요 기능
첫 차이 보고
처음 다른 바이트 위치와 값을 알려 줍니다.
- 활용 상황: 파일이 어디서 달라지는지 찾을 때
- 얻는 결과: 바이트 단위로 정확히 지목합니다.
- 제한 사항: 여러 차이를 한 번에 보여 주지는 않습니다.
조용한 비교
-s로 출력 없이 종료 코드만 받습니다.
- 활용 상황: 스크립트에서 동일 여부만 필요할 때
- 얻는 결과: 분기 처리가 단순해집니다.
- 제한 사항: 차이 내용은 알 수 없습니다.
길이 비교
길이가 다르면 그 사실도 함께 보고합니다.
- 활용 상황: 잘린 파일을 찾아낼 때
- 얻는 결과: 전송 사고를 빠르게 발견합니다.
- 제한 사항: 내용이 같은데 길이만 다른 경우는 드뭅니다.
설치 및 실행
설치 여부 확인
cmp --version
sudo apt install diffutils # Debian/Ubuntu sudo dnf install diffutils # Fedora
실제 사용 예제
바이트 비교
두 파일의 첫 차이를 확인합니다.
cmp a.bin b.bin
조용한 비교
동일 여부만 종료 코드로 받습니다.
cmp -s a.bin b.bin && echo SAME || echo DIFF
압축 파일 비교
압축 결과가 같은지 확인합니다.
cmp -s out1.tar.gz out2.tar.gz; echo $?