Man Pages

du(1p) - phpMan du(1p) - phpMan

Command: man perldoc info search(apropos)  


DU(1P)                     POSIX Programmer's Manual                    DU(1P)



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

NAME
       du - estimate file space usage

SYNOPSIS
       du [-a | -s][-kx][-H | -L][file ...]

DESCRIPTION
       By default, the du utility shall write to standard output the size of the file space allocated to, and the size
       of the file space allocated to each subdirectory of, the file hierarchy rooted in each of the specified  files.
       By  default,  when  a symbolic link is encountered on the command line or in the file hierarchy, du shall count
       the size of the symbolic link (rather than the file referenced by the link), and shall not follow the  link  to
       another  portion  of the file hierarchy. The size of the file space allocated to a file of type directory shall
       be defined as the sum total of space allocated to all files in the file hierarchy rooted in the directory  plus
       the space allocated to the directory itself.

       When  du  cannot  stat()  files or stat() or read directories, it shall report an error condition and the final
       exit status is affected. Files with multiple links shall be counted and written for only one entry. The  direc-
       tory  entry  that is selected in the report is unspecified. By default, file sizes shall be written in 512-byte
       units, rounded up to the next 512-byte unit.

OPTIONS
       The du utility shall conform to the Base Definitions volume of IEEE Std 1003.1-2001, Section 12.2, Utility Syn-
       tax Guidelines.

       The following options shall be supported:

       -a     In  addition to the default output, report the size of each file not of type directory in the file hier-
              archy rooted in the specified file. Regardless of the presence of the -a option,  non-directories  given
              as file operands shall always be listed.

       -H     If a symbolic link is specified on the command line, du shall count the size of the file or file hierar-
              chy referenced by the link.

       -k     Write the files sizes in units of 1024 bytes, rather than the default 512-byte units.

       -L     If a symbolic link is specified on the command line or encountered during the traversal of a file  hier-
              archy, du shall count the size of the file or file hierarchy referenced by the link.

       -s     Instead of the default output, report only the total sum for each of the specified files.

       -x     When evaluating file sizes, evaluate only those files that have the same device as the file specified by
              the file operand.


       Specifying more than one of the mutually-exclusive options -H and -L shall not be considered an error. The last
       option specified shall determine the behavior of the utility.

OPERANDS
       The following operand shall be supported:

       file   The pathname of a file whose size is to be written. If no file is specified, the current directory shall
              be used.


STDIN
       Not used.

INPUT FILES
       None.

ENVIRONMENT VARIABLES
       The following environment variables shall affect the execution of du:

       LANG   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 prece-
              dence 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 exam-
              ple, 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  writ-
              ten to standard error.

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


ASYNCHRONOUS EVENTS
       Default.

STDOUT
       The  output  from  du shall consist of the amount of space allocated to a file and the name of the file, in the
       following format:


              "%d %s\n", <size>, <pathname>

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
       None.

EXAMPLES
       None.

RATIONALE
       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  1024-byte  quantity  can easily alias du to du -k without breaking the many historical
       scripts relying on the 512-byte units.

       The -b option was added to an early proposal to provide a resolution to the situation where System  V  and  BSD
       systems  give  figures  for file sizes in blocks, which is an implementation-defined concept. (In common usage,
       the block size is 512 bytes for System V and 1024 bytes for BSD systems.) However, -b was later deleted,  since
       the default was eventually decided as 512-byte units.

       Historical  file systems provided no way to obtain exact figures for the space allocation given to files. There
       are two known areas of inaccuracies in historical file systems: cases of indirect blocks being used by the file
       system  or sparse files yielding incorrectly high values. An indirect block is space used by the file system in
       the storage of the file, but that need not be counted in the space allocated to the file. A sparse file is  one
       in  which an lseek() call has been made to a position beyond the end of the file and data has subsequently been
       written at that point. A file system need not allocate all the intervening zero-filled blocks to such  a  file.
       It is up to the implementation to define exactly how accurate its methods are.

       The  -a  and  -s  options  were mutually-exclusive in the original version of du. The POSIX Shell and Utilities
       description is implied by the language in the SVID where -s is described as causing "only the grand  total"  to
       be  reported.   Some  systems  may  produce output for -sa, but a Strictly Conforming POSIX Shell and Utilities
       Application cannot use that combination.

       The -a and -s options were adopted from the SVID except that the System V behavior of not listing  non-directo-
       ries  explicitly  given  as  operands,  unless  the -a option is specified, was considered a bug; the BSD-based
       behavior (report for all operands) is mandated. The default behavior of du in the SVID with regard to reporting
       the failure to read files (it produces no messages) was considered counter-intuitive, and thus it was specified
       that the POSIX Shell and Utilities default behavior shall be to produce such messages. These  messages  can  be
       turned off with shell redirection to achieve the System V behavior.

       The  -x  option  is  historical  practice  on  recent  BSD  systems.   It  has  been  adopted by this volume of
       IEEE Std 1003.1-2001 because there was no other historical method of limiting the du search to  a  single  file
       hierarchy.  This  limitation of the search is necessary to make it possible to obtain file space usage informa-
       tion about a file system on which other file systems are mounted, without having to resort to  a  lengthy  find
       and awk script.

FUTURE DIRECTIONS
       None.

SEE ALSO
       ls, the System Interfaces volume of IEEE Std 1003.1-2001, stat()

COPYRIGHT
       Portions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2003 Edition, Stan-
       dard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base  Specifica-
       tions  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 Stan-
       dard,  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 .



IEEE/The Open Group                  2003                               DU(1P)