| df | |
|---|---|
Example usage of df | |
| Original authors | Ken Thompson, Dennis Ritchie (AT&T Bell Laboratories) |
| Developers | Various open-source and commercial developers |
| Release | 3 November 1971 |
| Operating system | Unix, Unix-like |
| Platform | Cross-platform |
| Type | Command |
| License | coreutils: GPLv3+ |
df is a shell command for reporting the amount of available and consumed storage space on a file system.
Although df is short for disk free, the command is not limited to disk storage. It was developed during the long period of time when disk-based storage was the ubiquitous mass storage technology.
The Single Unix Specification (SUS) specifies that space is reported in blocks of 512 bytes, and that at a minimum, it reports the file system names and the amount of free space. Using 512-bytes as the unit of measure is a historical practice and maintains compatibility with ls and other commands. Notably, the file system need not be constrained to internally use 512-byte blocks. The -k option was added as a compromise measure. It was agreed by the standard developers that 512 bytes was the best default unit because of its complete historical consistency on System V (versus the mixed 512/1024-byte usage on BSD systems), and that a -k option to switch to 1024-byte units was a good compromise. Users who prefer the more logical 1024-byte quantity can use alias to map df to df -k without breaking many historical scripts relying on the 512-byte units.
The command first appeared in Version 1 AT&T Unix. The command is part of the X/Open Portability Guide since issue 2 of 1987. It was inherited into the first version of POSIX and the Single Unix Specification (SUS). The implementation of df bundled in GNU coreutils was written by Torbjorn Granlund, David MacKenzie, and Paul Eggert. The command is available for Windows via UnxUtils.
Any number of file parameters can be specified on the command line to select the storage for the file system containing the file.
SUS specifies options -k and -P but most implementations include additional options. Notable options include:
-k-P-h-i-l-TThe output with -P consists of a line of information for each specified file system, like:
⟨fs name⟩ ⟨total space⟩ ⟨space used⟩ ⟨space free⟩ ⟨percentage used⟩ ⟨fs root⟩
where:
Example output from the df command:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 48764976 0 48764976 0% /dev
tmpfs 9757068 173100 9583968 2% /run
/dev/sda2 1824504008 723009800 1008791744 42% /
tmpfs 48785328 0 48785328 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 48785328 0 48785328 0% /sys/fs/cgroup
/dev/sda1 523248 3672 519576 1% /boot/efi
$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 12191244 500 12190744 1% /dev
tmpfs 12196332 702 12195630 1% /run
/dev/sda2 115859456 2583820 113275636 3% /
tmpfs 12196332 1 12196331 1% /dev/shm
tmpfs 12196332 5 12196327 1% /run/lock
tmpfs 12196332 16 12196316 1% /sys/fs/cgroup
/dev/sda1 0 0 0 - /boot/efi
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 47G 0 47G 0% /dev
tmpfs 9.4G 170M 9.2G 2% /run
/dev/sda2 1.7T 690G 963G 42% /
tmpfs 47G 0 47G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 47G 0 47G 0% /sys/fs/cgroup
/dev/sda1 511M 3.6M 508M 1% /boot/efi
df -- disk free