The df
utility shall write the amount of available space and
file slots for file systems on which the invoking user has
appropriate read access. File systems shall be specified by
the file operands; when none are specified,
information shall be written for all file systems. The
format of the default output from df is unspecified,
but all space figures are reported in 512-byte units, unless
the -k option is specified. This output shall contain
at least the file system names, amount of available space on
each of these file systems, and the number of free
file slots, or inodes, available; when -t is
specified, the output shall contain the total allocated
space as well.

A pathname of a file within the
hierarchy of the desired file system. If a file other than a
FIFO, a regular file, a directory, or a special file
representing the device containing the file system (for
example, /dev/dsk/0s1) is specified, the results are
unspecified. Otherwise, df shall write the amount of
free space in the file system containing the specified
file operand.

Provide a default value for the
internationalization variables that are unset or null. (See
the Base Definitions volume of
IEEE Std 1003.1-2001, Section 8.2,
Internationalization Variables for the precedence of
internationalization variables used to determine the values
of locale categories.)

LC_ALL

If set to a non-empty string value, override the values
of all the other internationalization variables.

LC_CTYPE

Determine the locale for the
interpretation of sequences of bytes of text data as
characters (for example, single-byte as opposed to
multi-byte characters in arguments).

LC_MESSAGES

Determine the locale that
should be used to affect the format and contents of
diagnostic messages written to standard error and
informative messages written to standard output.

NLSPATH

Determine the location of
message catalogs for the processing of LC_MESSAGES
.

In the
following list, all quantities expressed in 512-byte units
(1024-byte when -k is specified) shall be rounded up
to the next higher unit. The fields are:
<file system name>

The name of the
file system, in an implementation-defined format.

<total space>

The total size of the file
system in 512-byte units. The exact meaning of this figure
is implementation-defined, but should include
<space used>,
<space free>, plus any space reserved by
the system not normally available to a user.

<space used>

The total amount of space
allocated to existing files in the file system, in 512-byte
units.

<space free>

The total amount of space
available within the file system for the creation of new
files by unprivileged users, in 512-byte units. When this
figure is less than or equal to zero, it shall not be
possible to create any new files on the file system without
first deleting others, unless the process has appropriate
privileges. The figure written may be less than zero.

<percentage used>

The percentage
of the normally available space that is currently allocated
to all files on the file system. This shall be calculated
using the fraction:

<space
used>/( <space used>+
<space free>)

expressed as a
percentage. This percentage may be greater than 100 if
<space free> is less than zero. The
percentage value shall be expressed as a positive integer,
with any fractional result causing it to be rounded to the
next highest integer.
<file system root>

The behavior of
df with the -P option is the default action of
the 4.2 BSD df utility. The uppercase -P was
selected to avoid collision with a known industry extension
using -p.

Historical
df implementations vary considerably in their default
output. It was therefore necessary to describe the default
output in a loose manner to accommodate all known historical
implementations and to add a portable option ( -P) to
provide information in a portable format.

The use of
512-byte units is historical practice and maintains
compatibility with ls and other utilities in this
volume of IEEE Std 1003.1-2001. This does not
mandate that the file system itself be based on 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
easily alias df to df-k without
breaking many historical scripts relying on the 512-byte
units.

It was
suggested that df and the various related utilities
be modified to access a BLOCKSIZE environment
variable to achieve consistency and user acceptance. Since
this is not historical practice on any system, it is left as
a possible area for system extensions and will be
re-evaluated in a future version if it is widely
implemented.

Portions of
this text are reprinted and reproduced in electronic form
from IEEE Std 1003.1, 2003 Edition, Standard for Information
Technology -- Portable Operating System Interface (POSIX),
The Open Group Base Specifications Issue 6, Copyright (C)
2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any
discrepancy between this version and the original IEEE and
The Open Group Standard, the original IEEE and The Open
Group Standard is the referee document. The original
Standard can be obtained online at
http://www.opengroup.org/unix/online.html .