Your company here — click to reach over 10,000 unique daily visitors

du - Man Page

estimate file space usage

Examples (TL;DR)


du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F


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


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, 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


summarize device usage of the NUL-terminated file names specified in file F; if F is -, then read names from standard input


equivalent to --dereference-args (-D)

-h,  --human-readable

print sizes in human readable format (e.g., 1K 234M 2G)


list inode usage information instead of block usage


like --block-size=1K

-L,  --dereference

dereference all symbolic links

-l,  --count-links

count sizes many times if hard linked


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


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


show time of the last modification of any file in the directory, or any of its subdirectories


show time as WORD instead of modification time: atime, access, use, ctime or status


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 files that match PATTERN

-x,  --one-file-system

skip directories on different file systems


display this help and exit


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.


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).


Written by Torbjorn Granlund, David MacKenzie, Paul Eggert, and Jim Meyering.

Reporting Bugs

GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Report any translation bugs to <https://translationproject.org/team/>

See Also

Full documentation <https://www.gnu.org/software/coreutils/du>
or available locally via: info '(coreutils) du invocation'

Referenced By

dfc(1), fpart(1), getbsize.3bsd(3), gt5(1), ncdu(1), ocfs2(7), rs(1), rsnapshot(1), symlink(7), tmpfs(5), tree(1).

July 2024 GNU coreutils 9.5