The Linux df command provides a lot of useful information on file system usage. Credit: Roman Samborskyi / Shutterstock The df command provides information on file system usage, but includes quite a few options. This post examines the differences and makes some suggestions about when you should use which of the two commands. The df command stands for “disk free” and, as that name suggests, it focuses on how much free disk space is available with a clear report like this one: $ df Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 4096 0 4096 0% /dev tmpfs 1939948 0 1939948 0% /dev/shm tmpfs 775980 1688 774292 1% /run efivarfs 64 11 48 19% /sys/firmware/efi/efivars /dev/sda3 13974528 7045364 6330668 53% / tmpfs 1939948 16 1939932 1% /tmp /dev/sda3 13974528 7045364 6330668 53% /home /dev/sda2 996780 305840 622128 33% /boot /dev/sda1 613160 17780 595380 3% /boot/efi tmpfs 387988 128 387860 1% /run/user/1000 tmpfs 387988 40 387948 1% /run/user/1001 The default, as you can see from the above output, reports in one kilobyte blocks (1,024 bytes per block) and all file systems are listed. You can ask the command to report on a single file system like this: $ df /dev/sda3 Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 13974528 7044600 6331272 53% / You can also request the information by the name of the mount point. This might make the command a tad easier. $ df /home Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 13974528 7044600 6331272 53% /home One of the nicest options for this command is to request the data you want to see in a human-friendly format. This would be analogous to telling your old friend that you’re about to celebrate your 17th anniversary, you expect to take two weeks off to celebrate, and you’ll be driving 7 hours to get to the resort where you plan to stay. Reporting all these events in the same unit of time unit would be much harder to communicate. Here’s an example of the report shown above in the human-readable format: $ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 4.0M 0 4.0M 0% /dev tmpfs 1.9G 0 1.9G 0% /dev/shm tmpfs 758M 1.7M 757M 1% /run efivarfs 64K 11K 48K 19% /sys/firmware/efi/efivars /dev/sda3 14G 6.8G 6.1G 53% / tmpfs 1.9G 16K 1.9G 1% /tmp /dev/sda3 14G 6.8G 6.1G 53% /home /dev/sda2 974M 299M 608M 33% /boot /dev/sda1 599M 18M 582M 3% /boot/efi tmpfs 379M 128K 379M 1% /run/user/1000 tmpfs 379M 40K 379M 1% /run/user/1001 The df command also provides some other useful options. To report on file system type, for example, you can run a command like this one: $ df -T Filesystem Type 1K-blocks Used Available Use% Mounted on devtmpfs devtmpfs 4096 0 4096 0% /dev tmpfs tmpfs 1939948 0 1939948 0% /dev/shm tmpfs tmpfs 775980 1680 774300 1% /run efivarfs efivarfs 64 11 48 19% /sys/firmware/efi/efivars /dev/sda3 btrfs 13974528 7044600 6331272 53% / tmpfs tmpfs 1939948 16 1939932 1% /tmp /dev/sda3 btrfs 13974528 7044600 6331272 53% /home /dev/sda2 ext4 996780 305840 622128 33% /boot /dev/sda1 vfat 613160 17780 595380 3% /boot/efi tmpfs tmpfs 387988 128 387860 1% /run/user/1000 tmpfs tmpfs 387988 40 387948 1% /run/user/1001 The command below focuses on the btrfs file systems only: $ df -t btrfs Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda3 13974528 7043212 6332692 53% / /dev/sda3 13974528 7043212 6332692 53% /home Alternatively, if you simply want to report on inodes (those little data structures that describe file-system objects such as file and directories on Linux systems), you can use a command like this: $ df -i Filesystem Inodes IUsed IFree IUse% Mounted on devtmpfs 479307 544 478763 1% /dev tmpfs 484987 2 484985 1% /dev/shm tmpfs 819200 1077 818123 1% /run efivarfs 0 0 0 - /sys/firmware/efi/efivars /dev/sda3 0 0 0 - / tmpfs 1048576 51 1048525 1% /tmp /dev/sda3 0 0 0 - /home /dev/sda2 65536 43 65493 1% /boot /dev/sda1 0 0 0 - /boot/efi tmpfs 96997 154 96843 1% /run/user/1000 tmpfs 96997 44 96953 1% /run/user/1001 Note that in the output above, user files are mounted in /run/user. You can focus on a single file system or partition with a command like this: $ df -i /boot Filesystem Inodes IUsed IFree IUse% Mounted on /dev/sda2 65536 43 65493 1% /boot If you use the -a option with the df command, you might be in for a surprise. It will include include pseudo, duplicate and even inaccessible file systems in its output. The example below shows only the top portion of the amount of output you’re likely to see. $ df -a | head -11 Filesystem 1K-blocks Used Available Use% Mounted on proc 0 0 0 - /proc sysfs 0 0 0 - /sys devtmpfs 4096 0 4096 0% /dev securityfs 0 0 0 - /sys/kernel/security tmpfs 1939948 0 1939948 0% /dev/shm devpts 0 0 0 - /dev/pts tmpfs 775980 1676 774304 1% /run cgroup2 0 0 0 - /sys/fs/cgroup pstore 0 0 0 - /sys/fs/pstore efivarfs 64 11 48 19% /sys/firmware/efi/efivars That’s less than one third of the total output available. Here’s a command that will count the lines in the full command output: $ df -a | wc -l 36 Wrap-up The df (disk free) command is very useful for examining your file system space usage – something you ought to do from time to time to ensure that you’re not running short of needed disk space. Related content how-to Compressing files using the zip command on Linux The zip command lets you compress files to preserve them or back them up, and you can require a password to extract the contents of a zip file. By Sandra Henry-Stocker May 13, 2024 4 mins Linux opinion NSA, FBI warn of email spoofing threat Email spoofing is acknowledged by experts as a very credible threat. By Sandra Henry-Stocker May 13, 2024 3 mins Linux how-to The logic of && and || on Linux These AND and OR equivalents can be used in scripts to determine next actions. By Sandra Henry-Stocker May 02, 2024 4 mins Linux how-to Using the apropos command on Linux By Sandra Henry-Stocker Apr 24, 2024 3 mins Linux PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe