Linux

[ Linux ] diff - 두 파일 비교와 주요 옵션 정리

soyali 2025. 5. 29. 17:35

리눅스에서 작업하다 보면 두 파일이 정확히 어떤 부분에서 다른지 확인하고 싶을 때가 있습니다.
이때, 가장 많이 사용하는 명령어가 바로 **diff**입니다.


설정 파일, 코드, 문서, 디렉터리 등 텍스트 기반의 비교 작업에 폭넓게 활용되며, git diff의 기반 도구이기도 합니다.

 

 

diff 명령어란?

  • 두 개의 파일 또는 디렉터리를 비교
  • 어느 줄이 추가/삭제/변경되었는지를 표시
  • 결과는 patch 명령어와 연동하여 패치 파일 생성에도 사용됩니다.

 

 

기본 사용법

diff [옵션] 파일1 파일2

예시

diff config_v1.txt config_v2.txt

 

 

 

기본 출력 형태 예시

3c3
< color=blue
---
> color=green

 

  • 3c3: 세 번째 줄이 변경 (change)
  • <: 첫 번째 파일의 내용
  • >: 두 번째 파일의 내용

 

 

자주 쓰는 diff 옵션 설명

-u Unified 형식 출력 (깃에서 보는 것과 유사)
-c 컨텍스트(Context) 형식 출력 (변경 전후 주변 줄 함께 표시)
-y 양쪽 파일을 나란히(side-by-side) 보여줍니다.
--suppress-common-lines 공통된 줄 생략 (-y와 함께 쓰면 깔끔)
-r 디렉터리 비교 (재귀적으로 하위 파일까지)
-q 다름 여부만 출력 (어떤 줄이 다른지까지는 알려주지 않습니다.)
--color=always 비교 결과에 색상 추가 (가독성 증가)
--brief 변경된 파일 목록만 요약 출력
--speed-large-files 대용량 파일 비교 시 속도 향상 옵션

 

 

 

주요 옵션 실습 예제

 

1. Unified 형식 (-u) : Unified 형식 출력 

diff -u old.txt new.txt

출력

--- old.txt
+++ new.txt
@@ -1,3 +1,3 @@
-color=blue
+color=green

→ @@는 변경된 줄 번호와 함께 표시

 

 

2. Side-by-side 보기 (-y) : 양쪽 파일을 나란히(side-by-side) 보여줍니다.

diff -y file1.txt file2.txt

출력

color=blue         | color=green
size=medium     | size=large
version=1.0        | version=1.0

→ 가독성 좋고, 사람이 비교하기 편합니다.

 

 

3. 디렉터리 전체 비교 (-r) : 재귀적으로 하위 파일까지

diff -r dir1/ dir2/

→ 디렉터리 안의 파일까지 포함해 모든 차이 비교

 

 

4. 변경된 파일만 간단히 확인 (-q) : 다름 여부만 출력

diff -q file1.txt file2.txt

출력 

Files file1.txt and file2.txt differ

 

 

5. 색상 있는 출력 (--color=always) : 비교 결과에 색상 추가

diff --color=always -u file1.txt file2.txt

→ 터미널에서 색으로 변경 부분 강조됩니다. (지원 터미널 한정)

 

 

 

diff 옵션 요약 정리표

-u 깃(Git) 스타일 통합 비교
-c 컨텍스트 기반 비교
-y 좌우 나란히 비교
--suppress-common-lines 공통 줄 생략 (-y와 함께 사용)
-r 디렉터리 재귀 비교
-q 다름 여부만 빠르게 확인
--brief 변경 여부만 요약 출력
--color=always 변경 내용을 컬러로 강조
--speed-large-files 대용량 파일 비교 최적화