C.W.K.
Stream
Lesson 06 of 10 · published

diff — 파일 비교

~10 min · diff, patch, compare

Level 0창 구경꾼
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

두 파일의 모든 차이

diff a b 가 두 파일의 다른 줄을 보여줘. 기본 출력은 간결하고 옛날 스타일. -u 추가하면 git, GitHub, 코드 리뷰가 다 쓰는 unified format.

필요한 flag

  • -u — unified diff with 3 줄 context (표준).
  • -r — 디렉터리 두 개 재귀 비교.
  • -q — 차이 유무만, 내용 안 보임.
  • -i — 대소문자 무시.
  • -w — 모든 공백 무시.
  • -B — 빈 줄 변경 무시.
  • -y — side-by-side.
  • --color=auto — 색 (GNU diff 3.4+).

Unified diff 읽기

- 시작 = a 에만, + 시작 = b 에만. hunk header @@ -10,4 +10,5 @@ 는 'a 의 10 번째 줄부터 4 줄, b 의 10 번째 줄부터 5 줄'. git diff 와 같은 포맷.

패치

diff 를 파일로: diff -u a b > change.patch. 나중에 적용: patch < change.patch. 리눅스 커널 패치가 메일로 오갈 때 이 형태.

코드엔 diff 보다 나은 것

git diff 는 같은 unified format 에 rename 감지 + 색. delta (modern-tools 트랙) 가 diff 를 사람 읽기 좋게. 디렉터리 비교는 diff -rq dir1 dir2 + 수동 검토가 대부분 GUI 도구보다 나아.

Code

파일 / 디렉터리 비교·bash
diff -u old.conf new.conf
diff -rq build1/ build2/        # which files differ?
diff -u config.yaml ~/.config/app/config.yaml > my-changes.patch

External links

Exercise

파일 복사: cp ~/.zshrc /tmp/zshrc.old. 사본 수정. diff -u /tmp/zshrc.old ~/.zshrc | head -30 으로 unified diff 보기. 패치로 저장: diff -u ... > /tmp/my.patch.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.