du
命令在 Linux 系统中可以方便准确的计算每个文件的大小,如果是目录则计算目录下所有文件的总大小。
du 命令格式
du [选项]... [文件]...
du [OPTION]... --files0-from=F
du 命令示例
显示当前位置下所有子目录的大小,默认单位为 KB:
du
显示目录大小单位:
du -h
统计并汇总当前目录下所有文件的大小:
du -hs
统计指定目录下第一层级每个文件或目录的大小:
du -hs ./*
统计指定目录下每个文件大小的同时,在最后输出总计大小:
du -hsc ./*
统计指定目录下文件的大小,并按顺序从大到小排序(这里通过管道方法借助了 sort
命令的排序能力):
du -hs ./* | sort -hr
du 命令选项参考
缩写 | 完整名称 | 说明 |
---|---|---|
-0 |
--null |
使每行输出以 NUL 字符结束,不添加换行符 |
-a |
--all |
输出所有文件的磁盘用量,不仅仅是目录 |
--apparent-size |
显示表面用量,而并非是磁盘用量;虽然表面用量通常会小一些,但有时它会因为稀疏文件间的“洞”、内部碎片、非直接引用的块等原因显得更大一些。 | |
-B |
--block-size= 大小 |
以指定大小为单位对块大小进行输出;例如,'-BM' 以 1,048,576 字节为单位输出大小;详情请参见 下方的“SIZE 格式”部分 |
-b |
--bytes |
等效于 '--apparent-size --block-size=1' |
-c |
--total |
显示总计信息 |
-D |
--dereference-args |
只在符号链接显式在命令行列出时对其进行解引用 |
-d |
--max-depth=N |
仅当目录(或在 --all 选项启用时包括文件)层级不高于命令行参数指定的 N 层时输出对应目录或文件的对应大小;--max-depth=0 等效于 --summarize |
--files0-from=F |
统计由文件 F 给出的由 NUL 空字符结束的文件名列表所对应各个文件的信息;如果 F 是 -,则从标准输入读取文件名列表 | |
-h |
--human-readable |
以人类可读的格式输出大小(例如,1K 234M 2G) |
--inodes |
列出 inode 使用信息而非块使用信息 | |
-k |
等效于 --block-size=1K |
|
-L |
--dereference |
解引用所有符号链接 |
-l |
--count-links |
如果是硬连接,则重复计算其尺寸 |
-m |
等效于 --block-size=1M |
|
-P |
--no-dereference |
不跟随任何符号链接(默认行为) |
-S |
--separate-dirs |
不包括子目录的占用量 |
--si |
类似 -h,但使用 1000 的倍数,而非 1024 | |
-s |
--summarize |
只分别计算命令列中每个参数所占的总用量 |
-t |
--threshold= 大小 |
如果指定大小为正值,排除比该值更小的项,或者在值为负时排除更大的项 |
--time |
显示目录中或其子目录下所有文件的最后修改时间 | |
--time= 关键字 |
显示指定关键字对应的时间而非最后修改时间:atime, access, use, ctime 或 status | |
--time-style= 格式 |
使用指定格式显示时间,格式可以为:full-iso, long-iso, iso 或 +FORMAT;FORMAT 字符串以与 'date' 工具类似的方式解读 | |
-X |
--exclude-from= 文件 |
排除所有与指定文件所提供模式匹配的文件 |
--exclude= 模式 |
排除所有与所给模式匹配的文件 | |
-x |
--one-file-system |
跳过位于不同文件系统上的目录 |
--help |
显示此帮助信息并退出 | |
--version |
显示版本信息并退出 |