Introduction
Linux df command can be used to display disk usage statistics for the file systems present on the Linux system. It’s handy tool to know which filesystem is consuming how much memory. Also, if a particular filename is picked up and supplied as argument to df command then it displays the disk usage statistics for the file system on which the file resides. This command can be used by the system administrators to know the disk usage status of various file systems on Linux so that proper clean-up and maintenance of the Linux system can be performed. The df command provides various options through which the output can be customized in a way that is most suited to the user.
In this article, we will discuss the df command through practical examples.
Syntax
Before jumping on to the examples, lets first take a look on how to use the df command. Here is the syntax information of df command from the man page:
df [OPTION]… [FILE]… |
So we see that the df command does not require any mandatory argument. The OPTION and FILE arguments are non-mandatory. While the OPTION argument tells the df command to act in a way as specified by the definition of that OPTION, the FILE argument tells the df command to print disk usage of only that file system on which the FILE resides.
NOTE: for those who are new to this type of syntax information, any argument specified in square brackets [] are non-mandatory.
Examples
1. Basic example
Here is how the df command can be used in its most basic form.
# df | |||||
Filesystem | 1K-blocks | Used | Available | Use% | Mounted on |
/dev/sda6 | 29640780 | 4320704 | 23814388 | 16% | / |
udev | 1536756 | 4 | 1536752 | 1% | /dev |
tmpfs | 617620 | 888 | 616732 | 1% | /run |
none | 5120 | 0 | 5120 | 0% | /run/lock |
none | 1544044 | 156 | 1543888 | 1% | /run/shm |
In the output above, the disk usage statistics of all the file systems were displayed when the df command was run without any argument.
The first column specifies the file system name, the second column specifies the total memory for a particular file system in units of 1k-blocks where 1k is 1024 bytes. Used and available columns specify the amount of memory that is in use and is free respectively. The use column specifies the used memory in percentage while the final column ‘Mounted on’ specifies the mount point of a file system.
2. Get the disk usage of file system through a file
As already discussed in the introduction, df can display the disk usage information of a file system if any file residing on that file system is supplied as an argument to it.
Here is an example:
# df test | |||||
Filesystem | 1K-blocks | Used | Available | Use% | Mounted on |
/dev/sda6 | 29640780 | 4320600 | 23814492 | 16% | / |
Here is another example:
# df groff.txt | |||||
Filesystem | 1K-blocks | Used | Available | Use% | Mounted on |
/dev/sda6 | 29640780 | 4320600 | 23814492 | 16% | / |
We used two different files (residing on same file system) as argument to df command. The output confirms that the df command displays the disk usage of file system on which a file resides.
3. Display inode information
There exists an option -i through which the output of the df command displays the inode information instead of block usage.
For example:
# df -i | |||||
Filesystem | Inodes | IUsed | IFree | IUse% | Mounted on |
/dev/sda6 | 1884160 | 261964 | 1622196 | 14% | / |
udev | 212748 | 560 | 212188 | 1% | /dev |
tmpfs | 216392 | 477 | 215915 | 1% | /run |
none | 216392 | 3 | 216389 | 1% | /run/lock |
none | 216392 | 8 | 216384 | 1% | /run/shm |
As we can see in the output above, the inode related information was displayed for each filesystem.
4. Produce a grand total
There exists an option –total through which the output displays an additional row at the end of the output which produces a total for every column.
Here is an example:
# df –total | |||||
Filesystem | 1K-blocks | Used | Available | Use% | Mounted on |
/dev/sda6 | 29640780 | 4320704 | 23814388 | 16% | / |
udev | 1536756 | 4 | 1536752 | 1% | /dev |
tmpfs | 617620 | 888 | 616732 | 1% | /run |
none | 5120 | 0 | 5120 | 0% | /run/lock |
none | 1544044 | 156 | 1543888 | 1% | /run/shm |
total | 33344320 | 4321772 | 27516860 | 14% |
So we see that the output contains an extra row towards the end of the output and displays total for each column.
5. Produce output in human readable format
There exists an option -h through which the output of df command can be produced in a human readable format.
Here is an example:
# df -h | |||||
Filesystem | Size | Used | Avail | %Used | Mounted on |
/dev/sda6 | 29G | 4.2G | 23G | 16% | / |
udev | 1.5G | 4.0K | 1.5G | 1% | /dev |
tmpfs | 604M | 892K | 603M | 1% | /run |
none | 5.0M | 0 | 5.0M | 0% | /run/lock |
none | 1.5G | 156K | 1.5G | 1% | /run/shm |
So we can see that the output displays the figures in form of ‘G’ (gigabytes), ‘M’ (megabytes) and ‘K’ (kilobytes). This makes the output easy to read and comprehend and thus makes is human readable. Note that the name of the second column is also changed to ‘size’ in order to make it human readable.