본문 바로가기

리눅스

[draft] diff 명령어

728x90

diff 명령어

diff 명령어는 두 파일의 차이를 비교해 보여주는 유용한 도구입니다. 주로 코드 변경 사항을 확인하거나 텍스트 파일의 차이를 확인할 때 사용됩니다.

1. 기본 형식

diff [옵션] 파일1 파일2

기본 출력 형식

  • -u (unified format) : 가장 일반적으로 사용되는 형식으로 변경된 라인을 중심으로 양쪽 파일의 내용을 보여줌
  • -c (context format) : 변경된 라인 주변의 몇 줄을 함께 보여주어 변경 내용의 맥락을 파악하기 쉬움

비교 옵션

  • -i : 대소문자를 구분하지 않고 비교
  • -r : 하위 디렉토리까지 재귀적으로 비교
  • -y : 두 파일을 나란히 배치하여 차이점을 시각적으로 확인하기 쉬움

공백 처리

  • -b : 공백 문자(스페이스, 탭)의 수를 무시
  • -t : 탭 문자를 특수 문자로 변환하지 않고 그대로 유지
  • -w : 모든 공백 문자를 무시 출력 형식 제어
  • --brief : 파일이 다른 경우에만 파일 이름만 출력
  • -d : 최소한의 변경으로 두 파일을 일치시키는 방법을 보여줌
  • -H : 대용량 파일을 비교할 때 효율적으로 처리
  • -q : 파일이 다른 경우에만 출력하고, 동일한 경우에는 아무것도 출력하지 않음
  • -s : 파일이 동일한 경우에도 "파일들은 동일합니다"라는 메시지를 출력

자주 사용되는 옵션 조합

  • -Nur : 파일 또는 디렉토리의 차이를 비교하는 데 가장 일반적으로 사용
  • -ur : 하위 디렉토리까지 재귀적으로 비교하며 통합 형식으로 출력 (가장 일반적인 사용법)
  • -ib : 공백의 수를 무시하고 대소문자를 구분하지 않고 비교
  • -ybw : 모든 공백을 무시하고 두 파일을 나란히 배치하여 출력
diff –Nur a.txt b.txt
$ diff -Nur a.txt b.txt
--- a.txt 2013-08-19 17:03:52.799591915 +0900
+++ b.txt 2013-08-19 16:59:20.750010797 +0900
@@ -6,3 +6,4 @@
 compat-expat1-1.95.8-8.el6.i686 설치
 compat-libcap1-1.10-1.i686 설치
 compat-libgfortran-41-4.1.2-39.el6.i686 설치
+*** FINISHED INSTALLING PACKAGES ***
diff -Nur /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.bk
$ diff -Nur /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/httpd.conf.bk
--- /usr/local/apache2/conf/httpd.conf	2020-12-31 01:30:05.316756750 +0000
+++ /usr/local/apache2/conf/httpd.conf.bk	2020-12-31 01:29:03.731039593 +0000
@@ -380,8 +380,6 @@
 </IfModule>

 <IfModule mime_module>
-	AddType application/x-httpd-php-source .phps
-AddType application/x-httpd-php .htm .html .php .ph .phtml .inc
     #
     # TypesConfig points to the file containing the list of mappings from
     # filename extension to MIME-type.
728x90

2. diff 명령어 사용 예시

단순 비교

  • 두 파일의 차이만을 확인하는 기본 사용법입니다.
diff file1.txt file2.txt

통합 형식으로 비교

  • 코드 파일을 비교할 때 주로 사용하는 옵션입니다.
diff -u file1.txt file2.txt

대소문자 무시하고 비교

  • 대소문자를 무시하고 차이를 확인합니다.
diff -i file1.txt file2.txt

하위 디렉터리까지 비교

  • 두 디렉터리를 비교하면서 파일과 하위 디렉터리까지 비교합니다.
diff -r dir1/ dir2/

두 파일을 나란히 비교

  • 차이점을 보기 쉽게 두 파일을 좌우로 나란히 보여줍니다.
diff -y file1.txt file2.txt

3. diff와 비슷한 유용한 명령어

sdiff 명령어

  • 두 파일을 나란히 비교하고 양쪽 차이를 쉽게 확인할 수 있습니다.
sdiff file1.txt file2.txt

vimdiff 명령어

  • Vim을 사용해 두 파일의 차이점을 시각적으로 확인하고 파일 편집도 가능합니다.
vimdiff file1.txt file2.txt

cmp 명령어

  • 두 파일의 바이트 단위 차이를 비교해 주며 차이가 발생하는 첫 번째 위치를 표시합니다.
cmp file1.txt file2.txt

comm 명령어

  • 정렬된 두 파일에서 공통 부분과 다른 부분을 나눠서 보여줍니다.
comm file1.txt file2.txt

colordiff 명령어

  • colordiff 설치
yum install -y colordiff
  • colordiff a.txt b.txt

diff

 

참고URL

- ubuntu manuals : https://manpages.ubuntu.com/manpages/jammy/en/man1/diff.1.html

 

728x90