14.2 du: 报告磁盘空间使用情况
Next: stat invocation, Previous: df invocation, Up: Disk usage [Contents][Index]
14.2 du: 报告磁盘空间使用情况
du 报告指定文件和每个子目录磁盘空间的使用量。语法:
du [option]… [file]…
如果没有给定参数, du 则会报告当前目录的磁盘空间使用情况。默认 情况,磁盘空间以 1024 个字节为单位进行打印。这个设置可以被修改 (参考 Block size). 如果计算结果不是整数则按四舍五入的原则显示一个整数。
如果一个 文件 有两个硬链接,则只会有一个硬链接会被计算。文件的参 数顺序决定了哪个链接会被计算。改变参数的顺序可能会改变 du 输出的 数字和条目。
这个命令可使用的参数如下。也可参考 Common options.
- ‘-0’
- ‘--null’
-
Output a zero byte (ASCII NUL) at the end of each line, rather than a newline. This option enables other programs to parse the output even when that output would contain data with embedded newlines.
- ‘-a’
- ‘--all’
-
Show counts for all files, not just directories.
- ‘--apparent-size’
-
Print apparent sizes, rather than disk usage. The apparent size of a file is the number of bytes reported by
wc -con regular files, or more generally,ls -l --block-size=1orstat --format=%s. For example, a file containing the word ‘zoo’ with no newline would, of course, have an apparent size of 3. Such a small file may require anywhere from 0 to 16 KiB or more of disk space, depending on the type and configuration of the file system on which the file resides. However, a sparse file created with this command:dd bs=1 seek=2GiB if=/dev/null of=bighas an apparent size of 2 GiB, yet on most modern systems, it actually uses almost no disk space.
- ‘-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.
- ‘-b’
- ‘--bytes’
-
Equivalent to
--apparent-size --block-size=1. - ‘-c’
- ‘--total’
-
Print a grand total of all arguments after all arguments have been processed. This can be used to find out the total disk usage of a given set of files or directories.
- ‘-D’
- ‘--dereference-args’
-
Dereference symbolic links that are command line arguments. Does not affect other symbolic links. This is helpful for finding out the disk usage of directories, such as /usr/tmp, which are often symbolic links.
- ‘-d depth’
- ‘--max-depth=depth’
-
Show the total for each directory (and file if –all) that is at most MAX_DEPTH levels down from the root of the hierarchy. The root is at level 0, so
du --max-depth=0is equivalent todu -s. - ‘--files0-from=file’
-
Disallow processing files named on the command line, and instead process those named in file file; each name being terminated by a zero byte (ASCII NUL). This is useful when the list of file names is so long that it may exceed a command line length limitation. In such cases, running
duviaxargsis undesirable because it splits the list into pieces and makesduprint with the --total (-c) option for each sublist rather than for the entire list. One way to produce a list of ASCII NUL terminated file names is with GNUfind, using its -print0 predicate. If file is ‘-’ then the ASCII NUL terminated file names are read from standard input. - ‘-H’
-
Equivalent to --dereference-args (-D).
- ‘-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.
- ‘--inodes’
-
List inode usage information instead of block usage. This option is useful for finding directories which contain many files, and therefore eat up most of the inodes space of a file system (see
df, option --inodes). It can well be combined with the options -a, -c, -h, -l, -s, -S, -t and -x; however, passing other options regarding the block size, for example -b, -m and --apparent-size, is ignored. - ‘-k’
-
Print sizes in 1024-byte blocks, overriding the default block size (see Block size). This option is equivalent to --block-size=1K.
- ‘-L’
- ‘--dereference’
-
Dereference symbolic links (show the disk space used by the file or directory that the link points to instead of the space used by the link).
- ‘-l’
- ‘--count-links’
-
Count the size of all files, even if they have appeared already (as a hard link).
- ‘-m’
-
Print sizes in 1,048,576-byte blocks, overriding the default block size (see Block size). This option is equivalent to --block-size=1M.
- ‘-P’
- ‘--no-dereference’
-
For each symbolic links encountered by
du, consider the disk space used by the symbolic link. - ‘-S’
- ‘--separate-dirs’
-
Normally, in the output of
du(when not using --summarize), the size listed next to a directory name, d, represents the sum of sizes of all entries beneath d as well as the size of d itself. With --separate-dirs, the size reported for a directory name, d, will exclude the size of any subdirectories. - ‘--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.
- ‘-s’
- ‘--summarize’
-
Display only a total for each argument.
- ‘-t size’
- ‘--threshold=size’
-
Exclude entries based on a given size. The size refers to used blocks in normal mode (see Block size), or inodes count in conjunction with the --inodes option.
If size is positive, then
duwill only print entries with a size greater than or equal to that.If size is negative, then
duwill only print entries with a size smaller than or equal to that.Although GNU
findcan be used to find files of a certain size,du’s --threshold option can be used to also filter directories based on a given size.Please note that the --threshold option can be combined with the --apparent-size option, and in this case would elide entries based on its apparent size.
Please note that the --threshold option can be combined with the --inodes option, and in this case would elide entries based on its inodes count.
Here’s how you would use --threshold to find directories with a size greater than or equal to 200 megabytes:
du --threshold=200MBHere’s how you would use --threshold to find directories and files - note the -a - with an apparent size smaller than or equal to 500 bytes:
du -a -t -500 --apparent-sizeHere’s how you would use --threshold to find directories on the root file system with more than 20000 inodes used in the directory tree below:
du --inodes -x --threshold=20000 / - ‘--time’
-
Show the most recent modification timestamp (mtime) of any file in the directory, or any of its subdirectories. See File timestamps.
- ‘--time=ctime’
- ‘--time=status’
- ‘--time=use’
-
Show the most recent status change timestamp (ctime) of any file in the directory, or any of its subdirectories. See File timestamps.
- ‘--time=atime’
- ‘--time=access’
-
Show the most recent access timestamp (atime) of any file in the directory, or any of its subdirectories. See File timestamps.
- ‘--time-style=style’
-
List timestamps in style style. This option has an effect only if the --time option is also specified. The style should be one of the following:
- ‘+format’
-
List timestamps using format, where format is interpreted like the format argument of
date(see date invocation). For example, --time-style="+%Y-%m-%d %H:%M:%S" causesduto list timestamps like ‘2002-03-30 23:45:56’. As withdate, format’s interpretation is affected by theLC_TIMElocale category. - ‘full-iso’
-
List timestamps in full using ISO 8601-like date, time, and time zone components with nanosecond precision, e.g., ‘2002-03-30 23:45:56.477817180 -0700’. This style is equivalent to ‘+%Y-%m-%d %H:%M:%S.%N %z’.
- ‘long-iso’
-
List ISO 8601 date and time components with minute precision, e.g., ‘2002-03-30 23:45’. These timestamps are shorter than ‘full-iso’ timestamps, and are usually good enough for everyday work. This style is equivalent to ‘+%Y-%m-%d %H:%M’.
- ‘iso’
-
List ISO 8601 dates for timestamps, e.g., ‘2002-03-30’. This style is equivalent to ‘+%Y-%m-%d’.
You can specify the default value of the --time-style option with the environment variable
TIME_STYLE; ifTIME_STYLEis not set the default style is ‘long-iso’. For compatibility withls, ifTIME_STYLEbegins with ‘+’ and contains a newline, the newline and any later characters are ignored; ifTIME_STYLEbegins with ‘posix-’ the ‘posix-’ is ignored; and ifTIME_STYLEis ‘locale’ it is ignored. - ‘-X file’
- ‘--exclude-from=file’
-
Like --exclude, except take the patterns to exclude from file, one per line. If file is ‘-’, take the patterns from standard input.
- ‘--exclude=pattern’
-
When recursing, skip subdirectories or files matching pattern. For example,
du --exclude='*.o'excludes files whose names end in ‘.o’. - ‘-x’
- ‘--one-file-system’
-
Skip directories that are on different file systems from the one that the argument being processed is on.
On BSD systems, du reports sizes that are half the correct values for files that are NFS-mounted from HP-UX systems. On HP-UX systems, it reports sizes that are twice the correct values for files that are NFS-mounted from BSD systems. This is due to a flaw in HP-UX; it also affects the HP-UX du program.
An exit status of zero indicates success, and a nonzero value indicates failure.
Next: stat invocation, Previous: df invocation, Up: Disk usage [Contents][Index]

浙公网安备 33010602011771号