du1
Estimate file space usage
Usage
du [OPTION] ...
[FILE] ...
du [OPTION] ...
--files0-from=F
Overview
Summarize device 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
-
-A, --apparent-size -
print apparent sizes rather than device usage; although the apparent size is usually smaller, it may be larger due to holes in ('sparse') files, internal fragmentation, indirect blocks, etc.
-
-B, --block-size=SIZE -
scale sizes by SIZE before printing them; See SIZE format below; E.g., '-BM' prints sizes in units of 1,048,576 bytes
-
-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 device usage of the NUL-terminated file names specified in file F; if F is -, 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 -
time/date format with
--time; see TIME_STYLE below
-
-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,R,Q (powers of 1024) or KB,MB,... (powers of 1000). Binary prefixes can be used, too: KiB=K, MiB=M, and so on.
The --time-style STYLE argument can be full-iso, long-iso, iso, or +FORMAT. FORMAT is interpreted like in date(1). Also the TIME_STYLE environment variable sets the default style to use.
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).
Releases
19 releases since Debian 1.1 (Buzz); the text changed 15 times.
--apparent-size since Debian 3.1 (Sarge);
--block-size since Debian 5.0 (Lenny);
--exclude since Debian 5.0 (Lenny);
--exclude-from since Debian 2.2 (Potato);
--files0-from since Debian 4.0 (Etch);
--human-readable since Debian 2.2 (Potato);
--inodes since Debian 8 (Jessie);
--max-depth since Debian 2.2 (Potato);
--no-dereference since Debian 3.1 (Sarge);
--null since Debian 3.1 (Sarge);
--si since Debian 2.2 (Potato);
--threshold since Debian 8 (Jessie);
--time since Debian 4.0 (Etch);
--time-style since Debian 5.0 (Lenny);
-0 since Debian 3.1 (Sarge);
-A since Arch Linux 2026-11-01;
-B since Debian 5.0 (Lenny);
-H since Debian 2.2 (Potato);
-P since Debian 3.1 (Sarge);
-X since Debian 2.2 (Potato);
-d since Debian 7 (Wheezy);
-h since Debian 2.2 (Potato);
-m since Debian 2.2 (Potato);
-t since Debian 8 (Jessie).
--kilobytes until Debian 3.0 (Woody);
--megabytes until Debian 3.0 (Woody).