리눅스에서 diff 명령어는 두 파일의 내용을 비교하여 차이점을 보여주는 명령어다.
diff [옵션] [파일1] [파일2]--------- 옵션 list --------- -u : "유니파이드(diff unified)" 형식으로 출력 (차이점을 더 보기 쉽게 보여줌) -c : "컨텍스트(diff context)" 형식으로 출력 (더 많은 맥락을 제공) -i : 대소문자 구분 없이 비교 -w : 공백(스페이스, 탭 등)을 무시하고 비교텍스트 파일 file1.txt, file2.txt가 아래와 같은 데이터를 가지고 있다고 가정!!
----file1.txt---- Hi Kim I'm Shin, and I'm studying Linux. I am planning to study Linux tomorrow. ----file2.txt---- hi kim I am Shin. I am studying UNIX. I am planning to study Linux tomorrow.# 옵션 없이 명령어 사용 diff file1.txt file2.txt # 출력 결과 1,2c1,2 # 각 파일의 1~2번 째 라인 데이터가 다름 < Hi Kim # file1.txt의 1~2번째 데이터가... < I'm Shin, and I'm studying Linux. --- > hi kim # file2.txt의 1~2번째 데이터와 다름 > I am Shin. I am studying UNIX.
# -u 옵션 사용 diff -u file1.txt file2.txt # 출력 결과 --- file1.txt 2024-11-14 15:49:35.468654780 +0000 +++ file2.txt 2024-11-14 15:50:16.499937304 +0000 @@ -1,4 +1,4 @@ -Hi Kim # file1에만 있는 데이터(삭제해야 file2.txt와 동일해짐) -I'm Shin, and I'm studying Linux. # file1에만 있는 데이터(삭제해야 file2.txt와 동일해짐) +hi kim # file1에는 없는 데이터(추가해야 file2.txt와 동일해짐) +I am Shin. I am studying UNIX. # file1에는 없는 데이터(추가해야 file2.txt와 동일해짐) I am planning to study Linux tomorrow. # file1, file2에 공통으로 있는 데이터
# -c 옵션 사용 diff -c file1.txt file2.txt # 출력 결과 *** file1.txt 2024-11-14 15:49:35.468654780 +0000 --- file2.txt 2024-11-14 15:50:16.499937304 +0000 *************** *** 1,4 **** ! Hi Kim # file1.txt와 file2.txt와 비교했을 때 서로 다른 데이터 ! I'm Shin, and I'm studying Linux. # file1.txt와 file2.txt와 비교했을 때 서로 다른 데이터 I am planning to study Linux tomorrow. --- 1,4 ---- ! hi kim # file1.txt와 file2.txt와 비교했을 때 서로 다른 데이터 ! I am Shin. I am studying UNIX. # file1.txt와 file2.txt와 비교했을 때 서로 다른 데이터 I am planning to study Linux tomorrow.
# -i 옵션 사용 diff -i file1.txt file2.txt # 출력 결과 2c2 # 대소문자 비교 없이 비교한 경우 각 파일의 2번째 라인 데이터만 다름을 확인 < I'm Shin, and I'm studying Linux. --- > I am Shin. I am studying UNIX.
리눅스에서 cmp 명령어는 두 파일의 내용을 비교하여 차이점을 데이터 시각으로 보여주는 명령어다.
cmp [옵션] [파일1] [파일2]--------- 옵션 list --------- -l : 두 파일의 차이점을 바이트 단위로 ASCII 코드 값과 함께 출력. 위치와 값 차이를 상세히 확인 가능 -s : 두 파일이 다른지만 확인하고 출력하지 않음 (두 파일이 같으면 0, 다르면 1, 오류면 2 반환) -i <n> : 지정한 바이트 수만큼 건너뛰고 비교 시작 (예: -i 10이면 처음 10바이트 무시)텍스트 파일 file1.txt, file2.txt가 아래와 같은 데이터를 가지고 있다고 가정!!
----file1.txt---- Hi Kim I'm Shin, and I'm studying Linux. I am planning to study Linux tomorrow. ----file2.txt---- hi kim I am Shin. I am studying UNIX. I am planning to study Linux tomorrow.# 옵션 없이 명령어 사용 cmp file1.txt file2.txt # 출력 결과 file1.txt file2.txt differ: byte 1, line 1 # 각 파일의 첫 번째 첫 문자부터 서로 다름을
# -s옵션 사용 cmp -sfile1.txt file2.txt echo $? # -s옵션을 출력값을 반환하지 않기 때문에 해당 명령어를 사용하여 확인해야 한다. # 출력 결과 1 # 두 파일이 서로 다름을 의미