Two related commands that every system administrator runs frequently are df
and du
. While du
reports files’ and directories’ disk usage, df
reports how much disk space your filesystem is using. The df
command displays the amount of disk space available on the filesystem with each file name’s argument.
For a good overview of the du
command, read Tyler Carrigan’s article Linux commands: du and the options you should be using. You might also be interested in my article Make du’s output more useful with this neat trick.
This article discusses how to use the df
command.
Learn df’s syntax
The df
command can be run by any user. Like many Linux commands, df
uses the following structure:
df [OPTION]... [FILE]...
The df
command primarily checks disk usage on a mounted filesystem. If you don’t include a file name, the output shows the space available on all currently mounted filesystems. Disk space is shown in 1K blocks by default:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 883500 0 883500 0% /dev
tmpfs 913840 168 913672 1% /dev/shm
tmpfs 913840 9704 904136 2% /run
tmpfs 913840 0 913840 0% /sys/fs/cgroup
/dev/map[...] 17811456 7193312 10618144 41% /
/dev/sda1 1038336 260860 777476 26% /boot
tmpfs 182768 120 182648 1% /run/user/1000
Lists of long numbers (as shown above) can be difficult to parse. If you want to run df
in its human-readable format, use the --human-readable
(-h
for short) option:
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 863M 0 863M 0% /dev
tmpfs 893M 168K 893M 1% /dev/shm
tmpfs 893M 9.5M 883M 2% /run
tmpfs 893M 0 893M 0% /sys/fs/cgroup
/dev/map[...] 17G 6.9G 11G 41% /
/dev/sda1 1014M 255M 760M 26% /boot
tmpfs 179M 120K 179M 1% /run/user/1000
Get inodes
To show inode (or index node) use on each mounted filesystem, use --inodes
(-i
for short):
$ df -ih
Filesystem Inodes IUsed IFree IUse% Mounted on
devtmpfs 216K 393 216K 1% /dev
tmpfs 224K 3 224K 1% /dev/shm
tmpfs 224K 857 223K 1% /run
tmpfs 224K 17 224K 1% /sys/fs/cgroup
/dev/map[...] 8.5M 168K 8.4M 2% /
/dev/sda1 512K 310 512K 1% /boot
tmpfs 224K 74 224K 1% /run/user/1000
[ Learn about Bash’s rich features by downloading the Bash shell scripting cheat sheet. ]
Get total available space
To omit entries that aren’t essential to available space and get a total, use the --total
option. You can use this option when all mounted filesystems are on the same disk, whether physical or virtual:
$ df -h --total
Filesystem Size Used Avail Use% Mounted on
devtmpfs 863M 0 863M 0% /dev
tmpfs 893M 168K 893M 1% /dev/shm
tmpfs 893M 9.5M 883M 2% /run
tmpfs 893M 0 893M 0% /sys/fs/cgroup
/dev/map[...] 17G 6.9G 11G 41% /
/dev/sda1 1014M 255M 760M 26% /boot
tmpfs 179M 120K 179M 1% /run/user/1000
total 22G 7.2G 15G 33% -
If you want to omit all mount points except for the total, use grep
alongside a regular expression with ^
to search for the total
at the start of a line:
$ df -h --total|grep ^total
total 22G 7.2G 15G 33% -
Get disk space available on a specific mount
You can also run df
on a specific mount point:
$ df -h /
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-stream 17G 6.9G 11G 41% /
$ df -h /boot
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 1014M 255M 760M 26% /boot
Customize your output
The examples I’ve demonstrated so far have the same columns in the output. If you want different output, you can customize the fields. For instance, suppose you don’t want to see the size or amount of disk used:
$ df -h --output=source,avail,pcent,target
Filesystem Avail Use% Mounted on
devtmpfs 863M 0% /dev
tmpfs 893M 1% /dev/shm
tmpfs 883M 2% /run
tmpfs 893M 0% /sys/fs/cgroup
/dev/map[...] 11G 41% /
/dev/sda1 760M 26% /boot
tmpfs 179M 1% /run/user/1000
You can read about the available field options on the info
page and the man
page.
[ You may also be interested in downloading the Curl command cheat sheet. ]
Use df
It’s a good idea to use the df
command regularly to monitor usage on critical mount points. These are the ways I typically use the command, so find your favorite options and start gathering data about your system.