linux 명령어 cmp
파일 비교하는 명령어.
$ cmp
Linux 명령어 cmp
두 파일을 비교하여 차이점을 출력하는 명령어
1. 자세한 설명
cmp
명령어는 Linux에서 두 파일을 비교하는 데 사용됩니다. 파일의 내용이나 데이터를 바이트 단위로 비교하며, 차이가 있는 첫 번째 위치를 출력합니다. 주로 바이너리 파일이나 텍스트 파일의 일치 여부를 확인하거나 차이점을 찾기 위해 활용됩니다.
2. 사용법
- 두 파일 비교
cmp [파일1] [파일2]
두 파일의 내용 차이를 바이트 단위로 비교합니다. - 차이점만 표시
cmp -s [파일1] [파일2]
차이가 있는 경우 아무것도 출력하지 않고 상태 코드만 반환합니다. - 출력 형식 변경
cmp -l [파일1] [파일2]
차이가 있는 위치와 관련 데이터를 상세히 출력합니다.
3. 자세하게 설명
cmp
명령어는 주로 파일의 데이터 비교에 사용되며 다음 옵션을 지원합니다:
- -s: 차이가 있을 경우 아무것도 출력하지 않으며, 상태 코드로 결과를 반환합니다.
- -l: 각 차이의 바이트 위치와 바이트 값을 자세히 출력합니다.
- -i [바이트]: 비교를 시작할 바이트 위치를 지정합니다.
- -n [바이트]: 비교할 바이트 수를 제한합니다.
4. 자세한 명령어 사용법
다음은 cmp
명령어의 다양한 사용 예제입니다:
# 기본적으로 두 파일 비교 $ cmp file1.txt file2.txt # 두 파일이 동일한지 확인 (출력 없음) $ cmp -s file1.txt file2.txt # 차이점의 위치와 데이터를 출력 $ cmp -l file1.txt file2.txt # 특정 위치에서 비교 시작 $ cmp -i 100 file1.txt file2.txt # 비교할 바이트 수 제한 $ cmp -n 200 file1.txt file2.txt # 바이너리 파일 비교 $ cmp binary1.bin binary2.bin # 결과를 다른 명령어와 결합 $ cmp file1.txt file2.txt && echo "파일이 동일합니다." # 상태 코드를 확인하여 파일 동일 여부 출력 $ cmp -s file1.txt file2.txt $ if [ $? -eq 0 ]; then echo "일치함"; else echo "불일치"; fi # 스크립트를 통해 파일 비교 자동화 #!/bin/bash for file in *.txt; do cmp -s $file reference.txt && echo "$file is identical to reference.txt" done # 특정 파일만 차이점을 출력 $ cmp -l file1.txt file2.txt | grep "10" # 특정 바이트를 기준으로 비교 수행 $ cmp -i 500 -n 1000 file1.bin file2.bin # 두 디렉터리의 파일 이름 비교 $ cmp -s <(ls dir1) <(ls dir2) # 결과를 JSON 형태로 변환 $ cmp -l file1.txt file2.txt | jq -R 'split(" ") | {byte_position: .[0], file1_value: .[1], file2_value: .[2]}' # 로그 파일의 차이점만 추출 $ cmp -l log1.txt log2.txt > diff_log.txt # 파일 이름 비교 후 상태 출력 $ cmp -s names1.txt names2.txt && echo "이름이 동일함" # 특정 디렉터리의 모든 파일 비교 자동화 #!/bin/bash for file in dir1/*.txt; do cmp -s $file dir2/${file##*/} || echo "$file differs." done # 바이너리 파일의 특정 범위 비교 $ cmp -i 100 -n 1000 file1.bin file2.bin # 결과를 새로운 파일에 저장 $ cmp -l file1.txt file2.txt > differences.txt
위의 예제는 cmp
명령어를 사용하여 파일을 비교하고 차이를 출력하는 다양한 방법을 보여줍니다.
No responses yet