공든탑앱 열기

diff·cmp·file

리눅스마스터 2급 · 기본 명령어 · 약 8분

쉽게 말하면

두 파일이 어디가 다른지 비교하거나(diff, cmp), 파일이 어떤 종류인지 알아내는(file) 명령이에요. 리눅스는 확장자를 믿지 않아서, 파일 안을 열어 보고 종류를 판단해요.

시험용 정의

파일을 비교하고 정보를 보는 명령들이다. diff는 두 텍스트 파일의 다른 줄을, cmp는 두 파일이 처음 달라지는 바이트 위치를, file은 파일의 종류를, stat은 inode의 자세한 정보를 보여 준다.

비유로 이해하기

diff는 두 원고를 나란히 놓고 달라진 문장에 빨간 펜 긋기, cmp는 "몇 번째 글자부터 다르다"만 알려 주는 검수기, file은 상자를 열어 보고 내용물 종류를 말해 주는 사람이다.

자세히

먼저 알아 둘 말

  • inode(아이노드): 파일 하나마다 있는 정보 기록 카드. 권한, 소유자, 크기, 시각, 데이터가 디스크 어디 있는지를 담는다. 파일 이름은 inode에 없고, 디렉터리가 "이름 → inode 번호" 목록을 들고 있다(자세히는 링크 개념에서)
  • 텍스트 파일과 바이너리 파일: 텍스트는 사람이 읽는 글자로만 된 파일(설정 파일, 스크립트), 바이너리는 실행 파일·이미지처럼 글자가 아닌 바이트가 섞인 파일. diff는 텍스트용, cmp는 바이너리도 비교한다
  • 매직 넘버: 파일 맨 앞 몇 바이트에 적힌 형식 표시(예: ELF 실행 파일은 7F 45 4C 46). file 명령은 확장자가 아니라 이것을 읽어 종류를 판단한다

명령 정리

명령뜻
diff a b다른 줄 표시 (a 추가, c 변경, d 삭제)
diff -u a b통합 형식 (패치 파일에 쓰는 -/+ 형식)
diff -r dir1 dir2디렉터리 비교
diff -i / -w대소문자 무시 / 공백 무시
cmp a b처음 달라지는 바이트·줄 번호 (바이너리 비교에 적합, 같으면 출력 없음)
file 파일파일 종류 판별 (매직 넘버)
stat 파일크기, 블록, inode, 권한, 소유자, 접근·수정·변경 시각
patchdiff 결과(패치)를 파일에 적용

시험에 나오는 그 밖의 도구

말뜻
comm정렬된 두 파일을 비교해 첫 파일에만 있는 줄, 둘째 파일에만 있는 줄, 공통 줄을 세 열로 보여 준다

시험에 이렇게 나와요

1차 출제기준 · 공개 기출 없음

확인 문제

Q1. 확장자 없는 파일 data가 텍스트인지, 압축 파일인지, 실행 파일인지 알고 싶다. 알맞은 명령은?

  1. file data
  2. type data
  3. stat data
  4. cat data
정답 보기

1번 file data

file은 확장자가 아니라 파일 내용의 앞부분(매직 넘버)을 보고 종류를 판단한다. 예: data: gzip compressed data. 리눅스는 확장자에 의미를 두지 않는다.

Q2. 두 파일이 처음으로 다른 바이트 위치를 알려 주는 명령은?

  1. comm
  2. cmp
  3. diff
  4. file
정답 보기

2번 cmp

cmp다. 두 파일을 바이트 단위로 비교해 처음 다른 위치를 알려 준다. diff는 다른 줄을 보여 주고, comm은 정렬된 두 파일의 줄을 비교한다.

Q3. diff 출력의 5d4가 뜻하는 것은?

  1. 4번째 줄 삭제
  2. 5번째 줄을 4번째 줄로 변경
  3. 첫 파일의 5번째 줄이 삭제되어야 함
  4. 5번째 줄 뒤에 추가
정답 보기

3번 첫 파일의 5번째 줄이 삭제되어야 함

첫 파일의 5번째 줄을 지우면 두 번째 파일의 4번째 줄 다음과 같아진다는 뜻이다. d는 삭제(delete), a는 추가(add), c는 변경(change)이다.

Q4. 파일의 inode 번호와 접근·수정·변경 시각을 모두 보여 주는 명령은?

  1. file
  2. ls -l
  3. stat
  4. du
정답 보기

3번 stat

stat이다. inode 번호, 크기, 접근·수정·변경 시각을 모두 보여 준다. ls -l은 수정 시각 하나만 보여 준다.

헷갈리기 쉬운 O·X

file 명령은 파일의 확장자만 보고 종류를 판단한다.

정답 보기

X 내용(매직 넘버)을 본다.

cmp는 두 파일이 같으면 아무것도 출력하지 않는다.

정답 보기

O 맞는 설명이다.

함께 보면 좋은 개념