리눅스 df, du 파일 시스템 디스크 사용량 측정 명령어 사용 방법
Linux에서는 df 명령을 사용하여 디스크 공간 사용량을 추정하고 du 명령을 사용하여 파일 공간 사용량을 추정합니다. 이 기사에서는 df와 du 명령의 차이점과 각 명령을 사용하는 경우에 대해 알아봅니다. df 및 du 명령은 거의 모든 Linux 배포판에서 사용할 수 있습니다.
df (Disk Free)와 du (Disk Usage) 명령의 차이점
du (디스크 사용량, Disk Usage) 명령은 Linux에서 파일 시스템의 파일 및 폴더가 차지하는 공간을 가져오는 데 사용되며, df (디스크 여유 공간, Disk Free) 명령은 사용자가 액세스할 수 있는 파일 시스템의 여유 디스크 공간을 표시하는 데 사용됩니다. du 명령은 일반적으로 특히 디스크 공간을 확보하려는 경우 시스템에서 가장 큰 폴더를 찾는 데 사용됩니다. du 명령은 단순히 디스크 사용량(사용 가능한 디스크 공간 및 사용된 디스크 공간)을 모니터링하는 데 사용됩니다.
- du (Disk Usage) : 디렉토리별로 디스크 사용량을 표시
- df (Disk Free) : 파일 시스템 메타데이터의 디스크 블록을 사용하여 필요한 수를 계산
df (Disk Free)
df는 각 파일 이름 인수를 포함하는 파일 시스템에서 사용 가능한 디스크 공간의 양을 표시합니다.
파일 이름을 지정하지 않으면 현재 마운트된 모든 파일 시스템에서 사용 가능한 공간이 표시됩니다.
POSIXLY_CORRECT 환경 변수가 설정되지 않은 경우 디스크 공간은 기본적으로 1K 블록으로 표시되며 이 경우 512바이트 블록이 사용됩니다.
인수가 마운트된 파일 시스템을 포함하는 디스크 장치 노드의 절대 파일 이름인 경우 df는 장치 노드를 포함하는 파일 시스템(항상 루트 파일 시스템임)이 아닌 해당 파일 시스템에서 사용 가능한 공간을 표시합니다. 이 버전의 df는 마운트되지 않은 파일 시스템에서 사용 가능한 공간을 표시할 수 없습니다.
대부분의 시스템에서 그렇게 하려면 파일 시스템 구조에 대한 매우 이식하기 어려운 친밀한 지식이 필요하기 때문입니다.
[invusomuch@server]$ df --help
Usage: df [OPTION]... [FILE]...
Show information about the file system on which each FILE resides,
or all file systems by default.
Mandatory arguments to long options are mandatory for short options too.
-a, --all include pseudo, duplicate, inaccessible file systems
-B, --block-size=SIZE scale sizes by SIZE before printing them; e.g.,
'-BM' prints sizes in units of 1,048,576 bytes;
see SIZE format below
--direct show statistics for a file instead of mount point
-h, --human-readable print sizes in powers of 1024 (e.g., 1023M)
-H, --si print sizes in powers of 1000 (e.g., 1.1G)
-i, --inodes list inode information instead of block usage
-k like --block-size=1K
-l, --local limit listing to local file systems
--no-sync do not invoke sync before getting usage info (default)
--output[=FIELD_LIST] use the output format defined by FIELD_LIST,
or print all fields if FIELD_LIST is omitted.
-P, --portability use the POSIX output format
--sync invoke sync before getting usage info
--total elide all entries insignificant to available space,
and produce a grand total
-t, --type=TYPE limit listing to file systems of type TYPE
-T, --print-type print file system type
-x, --exclude-type=TYPE limit listing to file systems not of type TYPE
-v (ignored)
--help display this help and exit
--version output version information and exit
Display values are in units of the first available SIZE from --block-size,
and the DF_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables.
Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).
The SIZE argument is an integer and optional unit (example: 10K is 10*1024).
Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).
FIELD_LIST is a comma-separated list of columns to be included. Valid
field names are: 'source', 'fstype', 'itotal', 'iused', 'iavail', 'ipcent',
'size', 'used', 'avail', 'pcent', 'file' and 'target' (see info page).
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation at: <https://www.gnu.org/software/coreutils/df>
or available locally via: info '(coreutils) df invocation'
[invusomuch@server]$ man df
DF(1) User Commands DF(1)
NAME
df - report file system disk space usage
SYNOPSIS
df [OPTION]... [FILE]...
DESCRIPTION
This manual page documents the GNU version of df. df displays the amount of disk space available on the file system containing each file name argument. If no file name is given, the
space available on all currently mounted file systems is shown. Disk space is shown in 1K blocks by default, unless the environment variable POSIXLY_CORRECT is set, in which case
512-byte blocks are used.
If an argument is the absolute file name of a disk device node containing a mounted file system, df shows the space available on that file system rather than on the file system containing
the device node. This version of df cannot show the space available on unmounted file systems, because on most kinds of systems doing so requires very nonportable intimate knowledge of
file system structures.
OPTIONS
Show information about the file system on which each FILE resides, or all file systems by default.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
include pseudo, duplicate, inaccessible file systems
-B, --block-size=SIZE
scale sizes by SIZE before printing them; e.g., '-BM' prints sizes in units of 1,048,576 bytes; see SIZE format below
--direct
show statistics for a file instead of mount point
-h, --human-readable
print sizes in powers of 1024 (e.g., 1023M)
-H, --si
print sizes in powers of 1000 (e.g., 1.1G)
-i, --inodes
list inode information instead of block usage
-k like --block-size=1K
-l, --local
limit listing to local file systems
--no-sync
do not invoke sync before getting usage info (default)
--output[=FIELD_LIST]
use the output format defined by FIELD_LIST, or print all fields if FIELD_LIST is omitted.
-P, --portability
use the POSIX output format
--sync invoke sync before getting usage info
--total
elide all entries insignificant to available space, and produce a grand total
-t, --type=TYPE
limit listing to file systems of type TYPE
-T, --print-type
print file system type
-x, --exclude-type=TYPE
limit listing to file systems not of type TYPE
-v (ignored)
--help display this help and exit
--version
output version information and exit
Display values are in units of the first available SIZE from --block-size, and the DF_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables. Otherwise, units default to 1024 bytes
(or 512 if POSIXLY_CORRECT is set).
The SIZE argument is an integer and optional unit (example: 10K is 10*1024). Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).
FIELD_LIST is a comma-separated list of columns to be included. Valid field names are: 'source', 'fstype', 'itotal', 'iused', 'iavail', 'ipcent', 'size', 'used', 'avail', 'pcent', 'file'
and 'target' (see info page).
AUTHOR
Written by Torbjorn Granlund, David MacKenzie, and Paul Eggert.
REPORTING BUGS
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report df translation bugs to <https://translationproject.org/team/>
COPYRIGHT
Copyright ⓒ 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
Full documentation at: <https://www.gnu.org/software/coreutils/df>
or available locally via: info '(coreutils) df invocation'
GNU coreutils 8.30 July 2018
[invusomuch@server]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 3955964 0 3955964 0% /dev
tmpfs 3974828 12 3974816 1% /dev/shm
tmpfs 3974828 584 3974244 1% /run
tmpfs 3974828 0 3974828 0% /sys/fs/cgroup
/dev/sda2 41922560 4531304 37391256 11% /
/dev/sda5 110568708 1957732 108610976 2% /home
/dev/sda1 518816 179044 339772 35% /boot
tmpfs 794964 0 794964 0% /run/user/500
tmpfs 794964 0 794964 0% /run/user/11000
du (Disk Usage)
디렉토리와 하위 디렉토리에 대한 각 파일의 디스크 사용을 표시합니다.
[invusomuch@server]$ du --help
Usage: du [OPTION]... [FILE]...
or: du [OPTION]... --files0-from=F
Summarize disk usage of the set of FILEs, recursively for directories.
Mandatory arguments to long options are mandatory for short options too.
-0, --null end each output line with NUL, not newline
-a, --all write counts for all files, not just directories
--apparent-size print apparent sizes, rather than disk usage; although
the apparent size is usually smaller, it may be
larger due to holes in ('sparse') files, internal
fragmentation, indirect blocks, and the like
-B, --block-size=SIZE scale sizes by SIZE before printing them; e.g.,
'-BM' prints sizes in units of 1,048,576 bytes;
see SIZE format below
-b, --bytes equivalent to '--apparent-size --block-size=1'
-c, --total produce a grand total
-D, --dereference-args dereference only symlinks that are listed on the
command line
-d, --max-depth=N print the total for a directory (or file, with --all)
only if it is N or fewer levels below the command
line argument; --max-depth=0 is the same as
--summarize
--files0-from=F summarize disk usage of the
NUL-terminated file names specified in file F;
if F is -, then read names from standard input
-H equivalent to --dereference-args (-D)
-h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G)
--inodes list inode usage information instead of block usage
-k like --block-size=1K
-L, --dereference dereference all symbolic links
-l, --count-links count sizes many times if hard linked
-m like --block-size=1M
-P, --no-dereference don't follow any symbolic links (this is the default)
-S, --separate-dirs for directories do not include size of subdirectories
--si like -h, but use powers of 1000 not 1024
-s, --summarize display only a total for each argument
-t, --threshold=SIZE exclude entries smaller than SIZE if positive,
or entries greater than SIZE if negative
--time show time of the last modification of any file in the
directory, or any of its subdirectories
--time=WORD show time as WORD instead of modification time:
atime, access, use, ctime or status
--time-style=STYLE show times using STYLE, which can be:
full-iso, long-iso, iso, or +FORMAT;
FORMAT is interpreted like in 'date'
-X, --exclude-from=FILE exclude files that match any pattern in FILE
--exclude=PATTERN exclude files that match PATTERN
-x, --one-file-system skip directories on different file systems
--help display this help and exit
--version output version information and exit
Display values are in units of the first available SIZE from --block-size,
and the DU_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables.
Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).
The SIZE argument is an integer and optional unit (example: 10K is 10*1024).
Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Full documentation at: <https://www.gnu.org/software/coreutils/du>
or available locally via: info '(coreutils) du invocation'
[invusomuch@server]$ man du
DU(1) User Commands DU(1)
NAME
du - estimate file space usage
SYNOPSIS
du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F
DESCRIPTION
Summarize disk usage of the set of FILEs, recursively for directories.
Mandatory arguments to long options are mandatory for short options too.
-0, --null
end each output line with NUL, not newline
-a, --all
write counts for all files, not just directories
--apparent-size
print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due to holes in ('sparse') files, internal fragmentation, indi?
rect blocks, and the like
-B, --block-size=SIZE
scale sizes by SIZE before printing them; e.g., '-BM' prints sizes in units of 1,048,576 bytes; see SIZE format below
-b, --bytes
equivalent to '--apparent-size --block-size=1'
-c, --total
produce a grand total
-D, --dereference-args
dereference only symlinks that are listed on the command line
-d, --max-depth=N
print the total for a directory (or file, with --all) only if it is N or fewer levels below the command line argument; --max-depth=0 is the same as --summarize
--files0-from=F
summarize disk usage of the NUL-terminated file names specified in file F; if F is -, then read names from standard input
-H equivalent to --dereference-args (-D)
-h, --human-readable
print sizes in human readable format (e.g., 1K 234M 2G)
--inodes
list inode usage information instead of block usage
-k like --block-size=1K
-L, --dereference
dereference all symbolic links
-l, --count-links
count sizes many times if hard linked
-m like --block-size=1M
-P, --no-dereference
don't follow any symbolic links (this is the default)
-S, --separate-dirs
for directories do not include size of subdirectories
--si like -h, but use powers of 1000 not 1024
-s, --summarize
display only a total for each argument
-t, --threshold=SIZE
exclude entries smaller than SIZE if positive, or entries greater than SIZE if negative
--time show time of the last modification of any file in the directory, or any of its subdirectories
--time=WORD
show time as WORD instead of modification time: atime, access, use, ctime or status
--time-style=STYLE
show times using STYLE, which can be: full-iso, long-iso, iso, or +FORMAT; FORMAT is interpreted like in 'date'
-X, --exclude-from=FILE
exclude files that match any pattern in FILE
--exclude=PATTERN
exclude files that match PATTERN
-x, --one-file-system
skip directories on different file systems
--help display this help and exit
--version
output version information and exit
Display values are in units of the first available SIZE from --block-size, and the DU_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables. Otherwise, units default to 1024
bytes (or 512 if POSIXLY_CORRECT is set).
The SIZE argument is an integer and optional unit (example: 10K is 10*1024). Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).
PATTERNS
PATTERN is a shell pattern (not a regular expression). The pattern ? matches any one character, whereas * matches any string (composed of zero, one or multiple characters). For
example, *.o will match any files whose names end in .o. Therefore, the command
du --exclude='*.o'
will skip all files and subdirectories ending in .o (including the file .o itself).
AUTHOR
Written by Torbjorn Granlund, David MacKenzie, Paul Eggert, and Jim Meyering.
REPORTING BUGS
GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report du translation bugs to <https://translationproject.org/team/>
COPYRIGHT
Copyright ⓒ 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
SEE ALSO
Full documentation at: <https://www.gnu.org/software/coreutils/du>
or available locally via: info '(coreutils) du invocation'
GNU coreutils 8.30 July 2018
- du /home/user/Desktop : 이 명령줄을 사용하면 사용자가 데스크탑 폴더 및 파일의 디스크 사용량을 볼 수 있습니다(하위 디렉토리도 포함됨).
- du -h /home/user/Desktop : df 와 마찬가지로 -h 옵션은 사람이 읽을 수 있는 형식으로 정보를 표시 합니다.
- du -sh /home/user/Desktop : -s 옵션은 지정된 폴더(이 경우 Desktop)의 총 크기를 제공합니다.
- du -m /home/user/Desktop : -m 옵션은 Mega bytes 단위로 폴더 및 파일 크기를 제공합니다 ( -k 를 사용 하여 Kilo bytes 단위 로 정보를 볼 수 있음).
- du -h : time /home/user/Desktop — 표시된 폴더 및 파일의 마지막 수정 날짜를 알려줍니다.
- df –help : 사용 가능한 옵션 목록과 용도를 표시합니다.
[root@invusomuch-WAS01 ~]# du
148 ./.pulse
16 ./.gnupg
20 ./.ssh
8 ./.dbus/session-bus
12 ./.dbus
4 ./.nautilus
8 ./.cache/gedit
24 ./.cache
4 ./.thumbnails/normal
8 ./.thumbnails
52 ./.sonar/ws_cache/http%3A%2F%2Flocalhost%3A9000/global
172 ./.sonar/ws_cache/http%3A%2F%2Flocalhost%3A9000/5.5/projects/org.sonarqube%3Ajava-simple-sq-scanner
176 ./.sonar/ws_cache/http%3A%2F%2Flocalhost%3A9000/5.5/projects
180 ./.sonar/ws_cache/http%3A%2F%2Flocalhost%3A9000/5.5
236 ./.sonar/ws_cache/http%3A%2F%2Flocalhost%3A9000
240 ./.sonar/ws_cache
....
[root@invusomuch-WAS01 ~]# du -h
148K ./.pulse
16K ./.gnupg
20K ./.ssh
8.0K ./.dbus/session-bus
12K ./.dbus
4.0K ./.nautilus
8.0K ./.cache/gedit
24K ./.cache
4.0K ./.thumbnails/normal
8.0K ./.thumbnails
52K ./.sonar/ws_cache/http%3A%2F%2Flocalhost%3A9000/global
172K ./.sonar/ws_cache/http%3A%2F%2Flocalhost%3A9000/5.5/projects/org.sonarqube%3Ajava-simple-sq-scanner
176K ./.sonar/ws_cache/http%3A%2F%2Flocalhost%3A9000/5.5/projects
180K ./.sonar/ws_cache/http%3A%2F%2Flocalhost%3A9000/5.5
236K ./.sonar/ws_cache/http%3A%2F%2Flocalhost%3A9000
240K ./.sonar/ws_cache
....
[root@invusomuch-WAS01 ~]# du -sh
63M .
[root@invusomuch-WAS01 ~]# du -a ./apps/jdk1.8.0_275
4 ./apps/jdk1.8.0_275/release
152 ./apps/jdk1.8.0_275/jre/THIRD_PARTY_README
20 ./apps/jdk1.8.0_275/jre/LICENSE
4 ./apps/jdk1.8.0_275/jre/ASSEMBLY_EXCEPTION
4 ./apps/jdk1.8.0_275/jre/lib/meta-index
0 ./apps/jdk1.8.0_275/jre/lib/applet
63888 ./apps/jdk1.8.0_275/jre/lib/rt.jar
12 ./apps/jdk1.8.0_275/jre/lib/psfontj2d.properties
.
....
[root@invusomuch-WAS01 ~]# du -d 2 ./apps
108740 ./apps/jdk1.8.0_275/jre
1540 ./apps/jdk1.8.0_275/sample
1940 ./apps/jdk1.8.0_275/man
38284 ./apps/jdk1.8.0_275/lib
696 ./apps/jdk1.8.0_275/bin
216 ./apps/jdk1.8.0_275/include
203100 ./apps/jdk1.8.0_275
76 ./apps/cronolog-1.6.2/sbin
8 ./apps/cronolog-1.6.2/info
[root@invusomuch-WAS01 ~]# du -hd 2 ./apps
107M ./apps/jdk1.8.0_275/jre
1.6M ./apps/jdk1.8.0_275/sample
1.9M ./apps/jdk1.8.0_275/man
38M ./apps/jdk1.8.0_275/lib
696K ./apps/jdk1.8.0_275/bin
216K ./apps/jdk1.8.0_275/include
199M ./apps/jdk1.8.0_275
76K ./apps/cronolog-1.6.2/sbin
8.0K ./apps/cronolog-1.6.2/info
# GB의 디렉토리를 표시
[root@invusomuch-WAS01 ~]# du -h | grep [0-9]G
7G ./apps/log-1.6.2/sbin
8.0G ./apps/log-1.6.2/info
# MB의 디렉토리를 표시
[root@invusomuch-WAS01 ~]# du -h | grep [0-9]G
5.4M ./apps/test/bin
8.2G ./apps/test/info
# 디렉토리별로 용량을 확인하고, 용량 크기별로 정렬
[root@invusomuch-WAS01 ~]# du -S | sort -n