14.1 df: Report file system disk space usage
df reports the amount of disk space used and available on
file systems. Synopsis:
df [option]... [file]...
With no arguments, df reports the space used and available on all
currently mounted file systems (of all types). Otherwise, df
reports on the file system containing each argument file.
Normally the disk space is printed in units of
1024 bytes, but this can be overridden (see Block size).
Non-integer quantities are rounded up to the next higher unit.
If an argument file is a disk device file containing a mounted
file system, df shows the space available on that file system
rather than on the file system containing the device node (i.e., the root
file system). gnu df does not attempt to determine the
disk usage
on unmounted file systems, because on most kinds of systems doing so
requires extremely nonportable intimate knowledge of file system
structures.
The program accepts the following options. Also see Common options.
- ‘-a’
- ‘--all’
- Include in the listing dummy file systems, which
are omitted by default. Such file systems are typically special-purpose
pseudo-file-systems, such as automounter entries.
- ‘-B size’
- ‘--block-size=size’
- Scale sizes by size before printing them (see Block size).
For example, -BG prints sizes in units of 1,073,741,824 bytes.
- ‘--total’
- Print a grand total of all arguments after all arguments have
been processed. This can be used to find out the total disk size, usage
and available space of all listed devices.
- ‘-h’
- ‘--human-readable’
- Append a size letter to each size, such as ‘M’ for mebibytes.
Powers of 1024 are used, not 1000; ‘M’ stands for 1,048,576 bytes.
This option is equivalent to --block-size=human-readable.
Use the --si option if you prefer powers of 1000.
- ‘-H’
- Equivalent to --si.
- ‘-i’
- ‘--inodes’
- List inode usage information instead of block usage. An inode (short
for index node) contains information about a file such as its owner,
permissions, timestamps, and location on the disk.
- ‘-k’
- Print sizes in 1024-byte blocks, overriding the default block size
(see Block size).
This option is equivalent to --block-size=1K.
- ‘-l’
- ‘--local’
- Limit the listing to local file systems. By default, remote file systems
are also listed.
- ‘--no-sync’
- Do not invoke the
sync
system call before getting any usage data.
This may make df run significantly faster on systems with many
disks, but on some systems (notably SunOS) the results may be slightly
out of date. This is the default.
- ‘-P’
- ‘--portability’
- Use the POSIX output format. This is like the default format except
for the following:
- The information about each file system is always printed on exactly
one line; a mount device is never put on a line by itself. This means
that if the mount device name is more than 20 characters long (e.g., for
some network mounts), the columns are misaligned.
- The labels in the header output line are changed to conform to POSIX.
- The default block size and output format are unaffected by the
DF_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment
variables. However, the default block size is still affected by
POSIXLY_CORRECT: it is 512 if POSIXLY_CORRECT is set, 1024
otherwise. See Block size.
- ‘--si’
- Append an SI-style abbreviation to each size, such as ‘M’ for
megabytes. Powers of 1000 are used, not 1024; ‘M’ stands for
1,000,000 bytes. This option is equivalent to
--block-size=si. Use the -h or
--human-readable option if
you prefer powers of 1024.
- ‘--sync’
- Invoke the
sync
system call before getting any usage data. On
some systems (notably SunOS), doing this yields more up to date results,
but in general this option makes df much slower, especially when
there are many or very busy file systems.
- ‘-t fstype’
- ‘--type=fstype’
- Limit the listing to file systems of type fstype. Multiple
file system types can be specified by giving multiple -t options.
By default, nothing is omitted.
- ‘-T’
- ‘--print-type’
- Print each file system's type. The types printed here are the same ones
you can include or exclude with -t and -x. The particular
types printed are whatever is supported by the system. Here are some of
the common names (this list is certainly not exhaustive):
- ‘nfs’
- An NFS file system, i.e., one mounted over a network from another
machine. This is the one type name which seems to be used uniformly by
all systems.
- ‘4.2, ufs, efs...’
- A file system on a locally-mounted hard disk. (The system might even
support more than one type here; Linux does.)
- ‘hsfs, cdfs’
- A file system on a CD-ROM drive. HP-UX uses ‘cdfs’, most other
systems use ‘hsfs’ (‘hs’ for “High Sierra”).
- ‘pcfs’
- An MS-DOS file system, usually on a diskette.
- ‘-x fstype’
- ‘--exclude-type=fstype’
- Limit the listing to file systems not of type fstype.
Multiple file system types can be eliminated by giving multiple
-x options. By default, no file system types are omitted.
- ‘-v’
- Ignored; for compatibility with System V versions of df.
An exit status of zero indicates success,
and a nonzero value indicates failure.
Failure includes the case where no output is generated, so you can
inspect the exit status of a command like ‘df -t ext3 -t reiserfs
dir’ to test whether dir is on a file system of type
‘ext3’ or ‘reiserfs’.