du(1)

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.

  1. 1.1
  2. 1.2–2.1
  3. 2.2
  4. 3.0
  5. 3.1
  6. 4.0
  7. 5.0
  8. 6.0
  9. 7
  10. 8
  11. 9
  12. 10
  13. 11
  14. 12
  15. 13
  16. Arch

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

Author

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

Reporting bugs

Report bugs to: <[email protected]>.
Report any translation bugs to: <https://translationproject.org/team/>.
GNU coreutils home page: <https://www.gnu.org/software/coreutils/>
General help using GNU software: <https://www.gnu.org/gethelp/>

From coreutils 9.12-2 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.