Linux df 명령어 완벽 가이드

리눅스 환경에서 파일 시스템의 디스크 사용량을 파악할 때 df(disk free) 명령어는 필수 도구입니다. 마운트된 전체 파일 시스템의 여유 공간과 사용 현황을 한눈에 확인할 수 있습니다.

기본 문법

df [옵션] [파일...]

특정 파일이나 디렉터리를 인자로 전달하면 해당 항목이 위치한 파일 시스템의 정보를 출력합니다. 인자를 생략하면 현재 마운트된 모든 파일 시스템의 정보를 보여줍니다.

주요 옵션

옵션설명
-a, --all가상 파일 시스템을 포함한 모든 파일 시스템 표시
-h, --human-readableKB, MB, GB 등 읽기 쉬운 단위로 표시 (1024 기준)
-H-h와 유사하나 1000 단위로 계산 (SI 접두어)
-i, --inodes블록 사용량 대신 inode 사용 현황 출력
-k블록 크기를 1024바이트로 고정
-l, --local로컬 파일 시스템만 표시 (NFS 등 원격 마운트 제외)
-m블록 크기를 1MB로 고정
-T, --print-type파일 시스템 유형 함께 출력
-t <유형>지정한 파일 시스템 유형만 필터링
-x <유형>지정한 파일 시스템 유형은 제외
-P, --portabilityPOSIX 표준 형식으로 출력
--sync정보 수집 전 sync 실행
--no-syncsync 생략 (기본값)

실전 예제

예제 1: 기본 디스크 사용량 확인

$ df
파일 시스템           1K-블록       사용    가용  사용% 마운트 위치
/dev/nvme0n1p2      49057860  15234020 31823840   33% /
/dev/nvme0n1p1        523248      6184   517064    2% /boot/efi
/dev/sda1          480588860 210452300 245138560   47% /data
tmpfs                8163264      1200  8162064    1% /run/user/1000

출력의 각 열은 다음을 의미합니다:

  • 파일 시스템: 디바이스 경로
  • 1K-블록: 파일 시스템 전체 크기 (1KB 블록 단위)
  • 사용: 이미 사용 중인 블록 수
  • 가용: 사용 가능한 블록 수
  • 사용%: 일반 사용자 공간 기준 사용률 (100%여도 root용 예약 공간 존재)
  • 마운트 위치: 파일 시스템이 연결된 디렉터리

참고: 사용 + 가용 ≠ 1K-블록인 이유는 각 파일 시스템에 root 전용 예약 공간이 할당되기 때문입니다. 사용자 공간이 가득 차도 관리자는 이 영역을 이용해 시스템 복구가 가능합니다.

예제 2: 사람 친화적 단위 표시

$ df -h
파일 시스템         크기   사용  가용  사용% 마운트 위치
/dev/nvme0n1p2     47G   15G   31G   33% /
/dev/nvme0n1p1    511M  6.1M  505M    2% /boot/efi
/dev/sda1         459G  201G  234G   47% /data
tmpfs             7.8G  1.2M  7.8G    1% /run/user/1000

예제 3: inode 사용량 점검

$ df -i
파일 시스텼              Inode   사용    가용  사용% 마운트 위치
/dev/nvme0n1p2      3129344  482300 2647044   16% /
/dev/nvme0n1p1       131072      40  131032    1% /boot/efi
/dev/sda1         30517248  120500 30396748    1% /data

소형 파일이 매우 많은 경우 실제 디스크 공간은 남아있어 inode가 부족해 파일 생성이 불가능한 상황이 발생합니다. 이 경우 df -i로 진단합니다.

예제 4: 특정 파일 시스템 유형 필터링

$ df -t ext4 -h
파일 시스템         크기   사용  가용  사용% 마운트 위치
/dev/nvme0n1p2     47G   15G   31G   33% /
/dev/sda1         459G  201G  234G   47% /data

예제 5: 파일 시스템 유형 정보 포함

$ df -Th
파일 시스텼    유형      크기   사용  가용  사용% 마운트 위치
/dev/nvme0n1p2 ext4      47G   15G   31G   33% /
/dev/nvme0n1p1 vfat     511M  6.1M  505M    2% /boot/efi
/dev/sda1      ext4     459G  201G  234G   47% /data
tmpfs          tmpfs    7.8G  1.2M  7.8G    1% /run/user/1000

예제 6: 파이프라인으로 정렬 및 필터링

사용률 기준 오름차순 정렬:

$ df -h | sort -k5 -n
파일 시스텸         크기   사용  가용  사용% 마운트 위치
/dev/nvme0n1p1    511M  6.1M  505M    2% /boot/efi
tmpfs             7.8G  1.2M  7.8G    1% /run/user/1000
/dev/nvme0n1p2     47G   15G   31G   33% /
/dev/sda1         459G  201G  234G   47% /data

특정 임계값(예: 50%) 이상인 파일 시스템만 추출:

$ df -h | awk 'NR==1 || $5+0 >= 50 {print}'
파일 시스텸         크기   사용  가용  사용% 마운트 위치
/dev/sdb1         200G  180G   20G   91% /archive

예제 7: -h vs -H 차이

$ df -h / | tail -1
/dev/nvme0n1p2     47G   15G   31G   33% /

$ df -H / | tail -1
/dev/nvme0n1p2     50G   16G   33G   33% /

-h는 이진 접두어(1024 기준, GiB, MiB), -H는 십진 접두어(1000 기준, GB, MB)를 사용합니다. 저장 장치 제조사의 용량 표기와 비교할 때는 -H가 더 직관적일 수 있습니다.

예제 8: 스크립트에서 활용

특정 마운트포인트의 사용률을 변수로 추출:

#!/bin/bash

MOUNT_POINT="/data"
THRESHOLD=80

usage=$(df "$MOUNT_POINT" | awk 'NR==2 {gsub(/%/,""); print $5}')

if [ "$usage" -ge "$THRESHOLD" ]; then
    echo "경고: ${MOUNT_POINT} 사용률 ${usage}% 임계치 초과" >&2
    # 알림 발송 로직
fi

자주 활용하는 조합

명령어용도
df -h일상적인 디스크 사용량 확인
df -hiinode 사용량 확인 (특히 메일 서버, 캐시 서버)
df -Th파일 시스템 유형과 함께 확인
df -lh로컬 파일 시스템만 확인 (NFS 숨김)
df -h .현재 디렉터리가 속한 파일 시스템 확인

df는 파일 시스템 수준의 정보를 제공하므로, 특정 디렉터리의 실제 사용량을 파하려면 du 명령어와 함께 사용하는 것이 좋습니다.

태그: linux df 디스크관리 파일시스템 inode

6월 6일 23:34에 게시됨