기본 문법
df [옵션] [파일 또는 디렉터리...]
df(disk free)는 마운트된 파일시스템의 전체 용량, 사용량, 남은 용량, 사용률, 마운트 지점을 표 형태로 보여주는 명령어입니다. 아무 인자 없이 실행하면 마운트된 파일시스템 목록이 출력되고, 경로를 인자로 주면 그 경로가 속한 파일시스템 한 줄만 출력됩니다.
디스크가 가득 차서 로그 기록이나 패키지 설치가 실패할 때 상태를 확인하는 데 사용합니다. -h 옵션으로 사람이 읽기 쉬운 단위를 확인하고, -i 옵션으로 용량은 남았는데 파일을 못 만드는 inode 고갈 상황을 구분합니다. 특정 디렉터리가 별도 파일시스템에 있는지, 어떤 파일시스템 타입(xfs, ext4, tmpfs, overlay)인지 확인할 때도 씁니다.
컨테이너 안에서 실행하면 호스트의 물리 디스크가 아니라 컨테이너에 보이는 마운트 구성이 출력됩니다. 예를 들어 루트가 overlay로, /etc/hosts 같은 바인드 마운트가 별도 행으로 나타날 수 있습니다.
리눅스마스터·RHCSA·LPIC 등 자격 시험에서는 df와 du의 차이, -h/-i/-T 옵션의 의미, 루트(/) 파일시스템 사용률 확인 방법이 다루어집니다. 점검 리포트의 ROOT_USAGE 값을 구하거나 경로별 파일시스템 타입을 조사할 때도 사용합니다.
자주 쓰는 옵션
| 옵션 | 의미 | 예 |
|---|---|---|
-h, --human-readable | 1024 단위의 사람이 읽기 쉬운 단위(K, M, G)로 표시 | df -h |
-T, --print-type | 파일시스템 타입(xfs, ext4, overlay 등) 열을 추가 | df -T /home |
-i, --inodes | 블록 대신 inode 사용량을 표시 | df -i / |
-a, --all | 의사(pseudo) 파일시스템과 중복·접근 불가 항목까지 모두 표시 | df -a |
-t, --type=타입 | 지정한 타입의 파일시스템만 표시 | df -t xfs |
-x, --exclude-type=타입 | 지정한 타입의 파일시스템을 제외 | df -x tmpfs |
-P, --portability | POSIX 형식으로 한 행을 한 줄에 출력(스크립트 파싱에 유리) | df -P / |
--output=필드 | 출력할 열을 직접 지정(source, fstype, size, used, avail, pcent, target 등) | df --output=source,fstype,pcent / |
-B, --block-size=크기 | 지정한 블록 크기 단위로 표시 | df -BM / |
--total | 마지막에 합계 행을 추가 | df -h --total |
실무 예시
전체 파일시스템 사용량 확인
$ df -h
Filesystem Size Used Avail Use% Mounted on
overlay 100G 79G 21G 79% /
tmpfs 64M 0 64M 0% /dev
tmpfs 7.7G 0 7.7G 0% /sys/fs/cgroup
shm 64M 0 64M 0% /dev/shm
/dev/mapper/vg00-lv00 100G 79G 21G 79% /etc/hosts
tmpfs 7.7G 0 7.7G 0% /proc/acpi
tmpfs 7.7G 0 7.7G 0% /proc/scsi
tmpfs 7.7G 0 7.7G 0% /sys/firmware
마운트된 파일시스템의 용량과 사용률을 읽기 쉬운 단위로 확인합니다. 컨테이너 환경이라 루트는 overlay이고, /dev·/sys/fs/cgroup 등은 tmpfs로, /etc/hosts는 호스트에서 바인드 마운트된 행으로 나타납니다.
루트 파일시스템만 확인
$ df -h /
Filesystem Size Used Avail Use% Mounted on
overlay 100G 79G 21G 79% /
경로를 인자로 주면 그 경로가 속한 파일시스템 한 줄만 출력됩니다.
파일시스템 타입 함께 보기
준비: mkdir -p /tmp/demo
$ df -T /tmp/demo
Filesystem Type 1K-blocks Used Available Use% Mounted on
overlay overlay 104751104 82740648 22010456 79% /
-T 옵션으로 해당 경로가 어떤 파일시스템 타입 위에 있는지 확인합니다. /tmp/demo는 별도 마운트가 아니므로 루트(overlay) 행이 출력됩니다.
inode 사용량 확인
$ df -i /
Filesystem Inodes IUsed IFree IUse% Mounted on
overlay 45235376 1213496 44021880 3% /
용량은 남았는데 파일 생성이 실패할 때 inode가 고갈됐는지 확인합니다.
스크립트용 사용률 값만 추출
$ df -P / | awk 'NR==2 {print "ROOT_USAGE=" $5}'
ROOT_USAGE=79%
-P로 한 행이 한 줄로 나오는 고정 형식을 만든 뒤 awk로 사용률 열(5번째 필드)만 뽑아 리포트 항목 값으로 씁니다.
경로별 파일시스템 타입 목록 만들기
준비: mkdir -p /tmp/demo; printf '/\n/tmp\n/dev\n' > /tmp/demo/targets.txt
$ while read -r p; do echo "PATH=$p FS=$(df -T "$p" | awk 'NR==2 {print $2}')"; done < /tmp/demo/targets.txt
PATH=/ FS=overlay
PATH=/tmp FS=overlay
PATH=/dev FS=tmpfs
목록 파일의 각 경로에 대해 df -T 결과에서 타입 열만 뽑아 한 줄씩 리포트 형식으로 만듭니다. 셸 변수 PATH를 실제로 덮어쓰지 않도록 echo 안의 문자열로만 사용한 점에 주의하세요.
주의할 점
- df는 마운트된 파일시스템 단위 사용량이고, 디렉터리별 용량은 du로 확인합니다. 둘을 혼동하지 마세요.
- 기본 출력 단위는 1K 블록입니다. -h 없이 나온 숫자를 MB로 오해하기 쉽습니다.
- 장치명이 길면 기본 출력에서 한 항목이 두 줄로 나뉠 수 있습니다. 스크립트로 파싱할 때는 -P나 --output을 쓰세요.
- 파일을 삭제했는데 여유 공간이 늘지 않으면 프로세스가 그 파일을 열고 있는 경우입니다. 파일 디스크립터가 닫혀야 df 값에 반영되며, lsof 등으로 해당 프로세스를 확인합니다.
- 컨테이너 안의 df 출력은 호스트의 디스크 구성과 다를 수 있습니다. 호스트 용량은 호스트에서 확인하세요.
- 루트 파일시스템이 가득 찼을 때 /var, /usr 등 시스템 경로의 파일을 임의로 삭제하면 시스템이 손상될 수 있습니다. 먼저 du로 원인 디렉터리를 찾고, 로그 회전(logrotate)이나 패키지 캐시 정리처럼 안전한 방법을 우선 검토하세요.
이 명령어로 풀 수 있는 실습 문제
브라우저 웹 터미널에서 바로 풀고 요구사항별로 자동 채점됩니다. 로그인 없이 5분 체험도 가능합니다.
관련 명령어
마지막 검수 2026-09-16 · 내용에 오류가 있으면 문제 페이지의 질문 기능으로 알려 주세요.
