# df

## PROLOG



           This manual page is part of the POSIX Programmer's Manual.  The
           Linux implementation of this interface may differ (consult the
           corresponding Linux manual page for details of Linux behavior), or
           the interface may not be implemented on Linux.
    


## NAME



           df — report free disk space
    


## SYNOPSIS



           df **[** -k**] [** -P|-t**] [**_file_...**]**
    


## DESCRIPTION



           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, if no options other than **-t** are specified, the
           number of free file slots, or _inode_ s, available; when **-t** is
           specified, the output shall contain the total allocated space as
           well.
    


## OPTIONS



           The _df_ utility shall conform to the Base Definitions volume of
           POSIX.1‐2017, _Section 12.2_ , _Utility Syntax Guidelines_.
    
           The following options shall be supported:
    
           **-k** Use 1024-byte units, instead of the default 512-byte
                     units, when writing space figures.
    
           **-P** Produce output in the format described in the STDOUT
                     section.
    
           **-t** Include total allocated-space figures in the output.
    


## OPERANDS



           The following operand shall be supported:
    
           _file_      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.
                     If the _file_ operand names a file other than a special
                     file containing a file system, _df_ shall write the amount
                     of free space in the file system containing the
                     specified _file_ operand.  Otherwise, _df_ shall write the
                     amount of free space in that file system.
    


## STDIN



           Not used.
    


## INPUT FILES



           None.
    


## ENVIRONMENT VARIABLES



           The following environment variables shall affect the execution of
           _df_ :
    
           _LANG_      Provide a default value for the internationalization
                     variables that are unset or null. (See the Base
                     Definitions volume of POSIX.1‐2017, _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_.
    


## ASYNCHRONOUS EVENTS



           Default.
    


## STDOUT



           When both the **-k** and **-P** options are specified, the following
           header line shall be written (in the POSIX locale):
    
               "Filesystem 1024-blocks Used Available Capacity Mounted on\n"
    
           When the **-P** option is specified without the **-k** option, the
           following header line shall be written (in the POSIX locale):
    
               "Filesystem 512-blocks Used Available Capacity Mounted on\n"
    
           The implementation may adjust the spacing of the header line and
           the individual data lines so that the information is presented in
           orderly columns.
    
           The remaining output with **-P** shall consist of one line of
           information for each specified file system. These lines shall be
           formatted as follows:
    
               "%s %d %d %d %d%% %s\n", <_file system name_ >, <_total space_ >,
                   <_space used_ >, <_space free_ >, <_percentage used_ >,
                   <_file system root_ >
    
           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 directory below which the file system hierarchy
                     appears.
    
           The output format is unspecified when **-t** is used.
    


## STDERR



           The standard error shall be used only for diagnostic messages.
    


## OUTPUT FILES



           None.
    


## EXTENDED DESCRIPTION



           None.
    


## EXIT STATUS



           The following exit values shall be returned:
    
            0    Successful completion.
    
           >0    An error occurred.
    


## CONSEQUENCES OF ERRORS



           Default.
    
           _The following sections are informative._
    


## APPLICATION USAGE



           On most systems, the ``name of the file system, in an
           implementation-defined format'' is the special file on which the
           file system is mounted.
    
           On large file systems, the calculation specified for percentage
           used can create huge rounding errors.
    


## EXAMPLES



            1. The following example writes portable information about the
               **/usr** file system:
    
                   df -P /usr
    
            2. Assuming that **/usr/src** is part of the **/usr** file system, the
               following produces the same output as the previous example:
    
                   df -P /usr/src
    


## RATIONALE



           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
           POSIX.1‐2017. 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.
    


## FUTURE DIRECTIONS



           None.
    


* * *