Bash du Command - File Space Usage
Using the du Command
The du command is used to estimate file space usage.
It's helpful for finding out how much space files and directories take up.
All examples below are run in this small directory tree:
.
|-- dir1
| |-- a.txt
| `-- subdir1
| `-- b.txt
|-- dir2
| |-- c.txt
| `-- subdir2
| `-- d.txt
`-- file1.txt
Each directory uses 4K on disk for itself. Each file uses 4K, except c.txt, which uses 8K.
The Try it Yourself examples run on a memory-based file system where directories use no space for themselves, so their totals are smaller.
Understanding the Output
The du command output consists of two columns:
- Size: The amount of disk space used by the file or directory.
- Path: The file or directory path.
Basic Usage
To display file space usage, use du:
Example: Basic Usage
du
8 ./dir1/subdir1
16 ./dir1
8 ./dir2/subdir2
20 ./dir2
44 .
Without options, sizes are counted in 1K blocks, so 44 means 44 kilobytes.
Options
The du command has options to change how it works:
-h- Show sizes in human-readable format (e.g., KB, MB)-s- Show only the total size for each item-a- Show sizes for all files, not just directories-c- Produce a grand total--max-depth=N- Limit the depth of directory traversal
Show Sizes in Human-Readable Format
The -h option allows you to show sizes in human-readable format.
Example: Show Sizes in Human-Readable Format
du -h
8.0K ./dir1/subdir1
16K ./dir1
8.0K ./dir2/subdir2
20K ./dir2
44K .
Show Only Total Size
The -s option allows you to show only the total size for each item.
Show Sizes for All Files
The -a option allows you to show sizes for all files, not just directories.
Example: Show Sizes for All Files
du -a
4 ./dir1/a.txt
4 ./dir1/subdir1/b.txt
8 ./dir1/subdir1
16 ./dir1
8 ./dir2/c.txt
4 ./dir2/subdir2/d.txt
8 ./dir2/subdir2
20 ./dir2
4 ./file1.txt
44 .
Produce a Grand Total
The -c option allows you to produce a grand total.
This is most useful when you give du several directories:
Example: Produce a Grand Total
du -c dir1 dir2
8 dir1/subdir1
16 dir1
8 dir2/subdir2
20 dir2
36 total
Limit Directory Traversal Depth
The --max-depth=N option allows you to limit the depth of directory traversal.
This can be useful for summarizing disk usage at a specific directory level.
Example: Limit Directory Traversal Depth
du --max-depth=1
16 ./dir1
20 ./dir2
44 .
In this example, du --max-depth=1 shows the space used by each directory at the top level, without diving deeper into subdirectories.
Example: Limit Directory Traversal Depth to 2
du --max-depth=2
8 ./dir1/subdir1
16 ./dir1
8 ./dir2/subdir2
20 ./dir2
44 .
Here, du --max-depth=2 provides a summary of disk usage up to two levels deep, including subdirectories.
Combining Options
Options can be combined to provide more detailed output. For example, du -h --max-depth=1 shows sizes in human-readable format with limited directory depth.