目录
内容来源:
GUN : Coreutils - GNU core utilities
busybox v1.36.1 : 【busybox记录】【shell指令】基于的Busybox的版本和下载方式-CSDN博客
【GUN】【du】指令介绍
du:预估文件空间使用情况
du 报告表示一组文件所需的空间。
简介:
du [option]... [file]...
在不带参数的情况下,du 报告表示当前目录上或目录下的文件所需的空间。通常以1024字节为单位打印空间,但这可以被覆盖(参见第2.2节[块大小],第3页)。非整数数量四舍五入到下一个更高的单位。
如果两个或多个硬链接指向同一个文件,则只计算其中一个硬链接。文件参数顺序会影响计算哪些链接,更改参数顺序可能会更改du输出的数量和条目。
程序接受以下选项。请参见第2章[常用选项],第2页。
‘-0’
‘--null’
在每行的末尾输出一个零字节(ASCII NUL),而不是换行符。此选项允许其他程序解析输出,即使该输出包含嵌入换行符的数据。
‘-a’
‘--all’
显示所有文件的计数,而不仅仅是目录。
‘--apparent-size’
打印表观大小,而不是文件系统使用情况。文件的表观大小是wc -c在常规文件上报告的字节数,或者更一般地,ls -l --block-size=1 或 stat --format=%s。例如,一个包含单词' zoo '且没有换行符的文件,显然其大小为3。这样一个小文件可能需要0到16kib或更多的文件系统空间,这取决于文件所在的文件系统的类型和配置。
然而,用这个命令创建的稀疏文件:
dd bs=1 seek=2GiB if=/dev/null of=big
表面大小为2gib,但在大多数现代文件系统上,它实际上几乎不占用任何空间。
表面大小仅对常规文件和符号链接有意义。其他文件类型不影响表观大小。
‘-B size’
‘--block-size=size’
在打印它们之前按大小缩放大小(参见第2.2节[块大小],第3页)。例如,-BG 以1,073,741,824字节为单位打印大小。
‘-b’
‘--bytes’
相当于 --apparent-size --block-size=1.
‘-c’
‘--total’
在处理完所有参数后,打印所有参数的总和。这可以用于查找给定文件或目录集的总文件系统使用情况。
‘-D’
‘--dereference-args’
解引用作为命令行参数的符号链接。不影响其他符号链接。这有助于查找目录(如/usr/tmp)的文件系统使用情况,这些目录通常是符号链接。
‘-d depth’
‘--max-depth=depth’
显示每个目录(和文件如果 --all)从层次结构的根开始最多处于MAX DEPTH级别的总数。根结点在0层,所以 du --max-depth=0 等价于du -s。
‘--files0-from=file’
禁止处理在命令行上命名的文件,而是处理在file file中命名的文件;每个名称以一个零字节(ASCII NUL)结束。
当文件名列表很长以至于可能超过命令行长度限制时,这很有用。
在这种情况下,通过xargs运行du是不可取的,因为它将列表分成几个部分,并使du为每个子列表打印 --total (-c)选项,而不是为整个列表打印。
生成以ASCII NUL结尾的文件名列表的一种方法是使用GNU find,使用它的 -print0 谓词。
如果file为' - ',则从标准输入读取以ASCII NUL结尾的文件名。
‘-H’
相当于 --dereference-args (-D)。
‘-h’
‘--human-readable’
在每个大小后面附加一个大小字母,例如“M”表示mebibytes。使用1024的幂,而不是1000;' M '代表1,048,576字节。
这个选项相当于 --block-size=human-readable。如果您喜欢1000的幂,请使用 --si选项。
‘--inodes’
列出索引节点使用信息,而不是块使用情况。此选项对于查找包含许多文件的目录非常有用,因此会占用文件系统的大部分inodes空间(参见df, 选项 --inodes)。
它可以很好地与选项-a, -c, -h, -l, -s, -s, -t和-x结合使用;
但是,传递关于块大小的其他选项,例如-b、-m和——obvious -size,将被忽略。
‘-k’
以1024字节的块打印大小,覆盖默认的块大小(参见2.2节[块大小],第3页)。这个选项相当于 --block-size=1K。
‘-L’
‘--dereference’
解引用符号链接(显示链接指向的文件或目录所使用的文件系统空间,而不是链接所使用的空间)。
‘-l’
‘--count-links’
计算所有文件的大小,即使它们已经出现(作为硬链接)。
‘-m’
打印大小为1,048,576字节的块,覆盖默认的块大小(参见2.2节[块大小],第3页)。这个选项相当于 --block-size=1M。
‘-P’
‘--no-dereference’
对于du遇到的每个符号链接,考虑符号链接本身所使用的文件系统空间。
‘-S’
‘--separate-dirs’
通常,在du的输出中(在不使用 --summarize 的情况下),目录名d旁边列出的大小表示d下面所有条目的大小之和以及d本身的大小。
使用 --separate-dirs,为目录名d报告的大小将排除所有子目录的大小。
‘--si’
在每个大小后面附加一个si样式的缩写,例如“M”表示兆字节。这里使用的是1000的幂,而不是1024;' M '代表1,000,000字节。
这个选项相当于 --block-size=si。如果您喜欢1024的幂,请使用-h或--human-readable选项。
‘-s’
‘--summarize’
仅显示每个参数的总数。
‘-t size’
‘--threshold=size’
根据给定的大小排除条目。大小指的是正常模式下使用的块(参见第2.2节[块大小],第3页),或者与 --inodes选项一起使用的inodes计数。
如果size为正数,则du将只打印大于或等于该值的项。
如果size为负,则du将只打印小于或等于该值的条目。
虽然GNU find可以用来查找一定大小的文件,但是du的 --threshold选项也可以用来根据给定的大小筛选目录。
当与 --apparent-size选项结合使用时, --threshold选项根据表观大小省略条目。当与 --inodes选项结合使用时,它会根据inode计数删除条目。
下面是如何使用 --threshold来查找大小大于或等于200mb的目录:
du --threshold=200MB
下面是如何使用 --threshold来查找明显大小小于或等于500字节的目录和文件(-a):
du -a -t -500 --apparent-size
下面是如何使用——threshold在根文件系统中查找目录树中使用的索引节点超过20000个的目录:
du --inodes -x --threshold=20000 /
‘--time’
显示目录或其子目录中任何文件的最近修改时间戳(mtime)。参见第28章[文件时间戳],第244页。
‘--time=ctime’
‘--time=status’
‘--time=use’
显示目录或其子目录中任何文件的最近状态更改时间戳(ctime)。参见第28章[文件时间戳],第244页。
‘--time=atime’
‘--time=access’
显示目录或其子目录中任何文件的最近访问时间戳(atime)。参见第28章[文件时间戳],第244页。
‘--time-style=style’
以样式style列出时间戳。该选项只有在指定了 --time选项时才有效。风格应该是下列之一:
‘+format’
使用format列出时间戳,format的解释类似于date的format参数(参见第21.1节[日期调用],第195页)。
例如, --time-style="+%Y-%m-%d %H:%M:%S" 导致du列出像‘2020-07-21 23:45:56’这样的时间戳。
与日期一样,格式的解释也受到LC_TIME区域设置类别的影响。
‘full-iso’
完整地列出时间戳,使用类似ISO 8601的日期、时间和时区组件,具有纳秒精度,例如‘2020-07-21 23:45:56.477817180 -0400’。
此样式相当于‘+%Y-%m-%d %H:%M:%S.%N %z’。
‘long-iso’
列出具有分钟精度的ISO 8601日期和时间组件,例如‘2020-07-21 23:45’。这些时间戳比“full-iso”时间戳短,通常足以用于日常工作。此样式相当于‘+%Y-%m-%d %H:%M’。
‘iso’
列出时间戳的ISO 8601日期,例如,‘2020-07-21’。此样式相当于‘+%Y-%m-%d’。
你可以用环境变量TIME_STYLE指定 --time-style选项的默认值;
如果未设置TIME_STYLE,则默认样式为' long-iso '。
为了与ls兼容,如果TIME_STYLE以' + '开头并包含换行符,则忽略换行符和其后的任何字符;
如果TIME_STYLE以' posix- '开头,则忽略' posix- ';如果TIME_STYLE是' locale ',它将被忽略。
‘-X file’
‘--exclude-from=file’
类似于--exclude,除了从文件中取出要排除的模式,每行一个。如果file是' - ',则从标准输入中获取模式。
‘--exclude=pattern’
递归时,跳过匹配模式的子目录或文件。例如,du --exclude='*.o'不包括文件名以'.O'结尾的文件。
‘-x’
‘--one-file-system’
跳过正在处理参数所在文件系统上不同的目录。
由于du依赖于操作系统报告的信息,因此其输出可能无法反映底层设备中消耗的空间。例如;
•操作系统通常不报告由复制或备份块、纠错位等所消耗的设备空间。这导致du低估了实际使用的设备空间。
•在使用写时复制(copy-on-write)的文件系统中,如果两个不同的文件共享空间,du的输出通常会计算所有文件的非孔被重写后将消耗的空间,而不是当前消耗的空间。
•在使用压缩的文件系统中,操作系统可能报告未压缩的空间。(如果它确实报告压缩空间,那么在仅仅覆盖现有文件数据之后,该报告可能会发生变化。)
•从历史上看,网络文件系统在从服务器到客户端的准确文件系统信息通信方面存在困难。
由于这些原因,最好将du视为对一组文件的tar或其他常规备份大小的估计,而不是对底层设备中所消耗空间的度量。
退出状态为0表示成功,非0表示失败。
【busybox】【du】指令介绍
【linux】【du】指令介绍
[root@localhost bin]# du --help
用法:du [选项]... [文件]...
或:du [选项]... --files0-from=F
Summarize disk usage of the set of FILEs, recursively for directories.
必选参数对长短选项同时适用。
-0, --null end each output line with NUL, not newline
-a, --all write counts for all files, not just directories
--apparent-size print apparent sizes, rather than disk usage; although
the apparent size is usually smaller, it may be
larger due to holes in ('sparse') files, internal
fragmentation, indirect blocks, and the like
-B, --block-size=SIZE scale sizes by SIZE before printing them; e.g.,
'-BM' prints sizes in units of 1,048,576 bytes;
see SIZE format below
-b, --bytes equivalent to '--apparent-size --block-size=1'
-c, --total produce a grand total
-D, --dereference-args dereference only symlinks that are listed on the
command line
-d, --max-depth=N print the total for a directory (or file, with --all)
only if it is N or fewer levels below the command
line argument; --max-depth=0 is the same as
--summarize
--files0-from=F summarize disk usage of the
NUL-terminated file names specified in file F;
if F is -, then read names from standard input
-H equivalent to --dereference-args (-D)
-h, --human-readable print sizes in human readable format (e.g., 1K 234M 2G)
--inodes list inode usage information instead of block usage
-k like --block-size=1K
-L, --dereference dereference all symbolic links
-l, --count-links count sizes many times if hard linked
-m like --block-size=1M
-P, --no-dereference don't follow any symbolic links (this is the default)
-S, --separate-dirs for directories do not include size of subdirectories
--si like -h, but use powers of 1000 not 1024
-s, --summarize display only a total for each argument
-t, --threshold=SIZE exclude entries smaller than SIZE if positive,
or entries greater than SIZE if negative
--time show time of the last modification of any file in the
directory, or any of its subdirectories
--time=WORD show time as WORD instead of modification time:
atime, access, use, ctime or status
--time-style=STYLE show times using STYLE, which can be:
full-iso, long-iso, iso, or +FORMAT;
FORMAT is interpreted like in 'date'
-X, --exclude-from=FILE exclude files that match any pattern in FILE
--exclude=PATTERN exclude files that match PATTERN
-x, --one-file-system skip directories on different file systems
--help 显示此帮助信息并退出
--version 显示版本信息并退出
所显示的数值是来自 --block-size、DU_BLOCK_SIZE、BLOCK_SIZE
及 BLOCKSIZE 环境变量中第一个可用的 SIZE 单位。
否则,默认单位是 1024 字节(或是 512,若设定 POSIXLY_CORRECT 的话)。
The SIZE argument is an integer and optional unit (example: 10K is 10*1024).
Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000).
GNU coreutils 在线帮助:<https://www.gnu.org/software/coreutils/>
请向 <http://translationproject.org/team/zh_CN.html> 报告 du 的翻译错误
完整文档请见:<https://www.gnu.org/software/coreutils/du>
或者在本地使用:info '(coreutils) du invocation'
使用示例:
使用后添加