---
name: "du"
section: "1"
platform: "linux"
package: "coreutils"
version: "9.12-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/du"
---

# du(1)

estimate file space usage

## NAME

du - estimate file space usage

## SYNOPSIS

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

## DESCRIPTION

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)](/date/1.md). 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).

## AUTHOR

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

## REPORTING BUGS

Report bugs to: \<bug-coreutils@gnu.org\>.\
 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/\>

## COPYRIGHT

Copyright © 2026 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 \<https://www.gnu.org/software/coreutils/du\>\
 or available locally via: info '(coreutils) du invocation'
