Linux du command
On Unix-like operating systems, the du command estimates and displays the disk space used by files.
This page covers the GNU/Linux version of du.
Syntax
du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F
Options
-a, --all | Write counts for all files, including 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, and indirect blocks. |
-B, --block-size=SIZE | Scale sizes by SIZE before printing them. For example, '-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 | Display a grand total. |
-D, --dereference-args |
Dereference only symlinks that are listed on the command line. |
--files0-from=F | Summarize disk usage of the null-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, rounding values and using abbreviations. For example, "1K", "234M", "2G", etc. |
--si | Like -h, but use powers of 1000, not 1024. |
-k | Like --block-size=1K. |
-l, --count-links | Count sizes often if hard-linked. |
-m | Like --block-size=1M. |
-L, --dereference | Dereference all symbolic links. |
-P, --no-dereference |
Don't follow any symbolic links (this is the default). |
-0, --null | End each output line with 0 byte rather than newline. |
-S, --separate-dirs | Do not include size of subdirectories. |
-s, --summarize | Display only a total for each argument. |
-x, --one-file-system | Skip directories on different file systems. |
-X, --exclude-from=FILE |
Exclude files that match any pattern in FILE. |
--exclude=PATTERN | Exclude files that match PATTERN. |
-d, --max-depth=N | Print the total for a directory (or file, with --all) only if it's N or fewer levels below the command line argument; --max-depth=0 is the same as --summarize. |
--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 STYLE: full-iso, long-iso, iso, or +FORMAT. (FORMAT is interpreted like the format of 'date'.) |
--help | Display a help message and exit. |
--version | Output version information and exit. |
SIZE format
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).
SIZE is an integer and optional unit (example: 10M is 10*1024*1024). Units are K, M, G, T, P, E, Z, Y (powers of 1024) or KB, MB, ... (powers of 1000).
Examples
du -s *.txt
Reports the size of each file in the current directory with the extension .txt. Below is an example of the output:
8 file1.txt 8 file2.txt 10 file3.txt 2 file4.txt 8 file5.txt 8 file6.txt
du -shc *.txt
Display the same data, but in a "human-readable" size format, and display a grand total.
8.0K file1.txt 8.0K file2.txt 10.0K file3.txt 2.0K file4.txt 8.0K file5.txt 8.0K file6.txt 44.0K total
Related commands
df — Report the amount of available disk space on file systems.
ls — List the contents of a directory or directories.