Linux du(英文全拼:disk usage)命令用于显示目录或文件的大小。du 侧重在文件夹和文件的磁盘占用方面,而 df 则侧重在文件系统级别的磁盘占用方面。
du 会显示指定的目录或文件所占用的磁盘空间。
du 展示的是磁盘空间占用量。ls 展示的是文件内容的大小。
语法
1 | du [-abcDhHklmsSx][-L <符号连接>][-X <文件>][--block-size] |
参数说明:
- -a 或-all 显示目录中个别文件的大小。
- -b 或-bytes 显示目录或文件大小时,以 byte 为单位。
- -c 或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
- -D 或–dereference-args 显示指定符号连接的源文件大小。
- -h 或–human-readable 以 K,M,G 为单位,提高信息的可读性。
- -H 或–si 与-h 参数相同,但是 K,M,G 是以 1000 为换算单位。
- -k 或–kilobytes 以 1024 bytes 为单位。
- -l 或–count-links 重复计算硬件连接的文件。
- -L<符号连接>或–dereference<符号连接> 显示选项中所指定符号连接的源文件大小。
- -m 或–megabytes 以 1MB 为单位。
- -s 或–summarize 仅显示总计。
- -S 或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
- -x 或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
- -X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
- –exclude=<目录或文件> 略过指定的目录或文件。
- –max-depth=<目录层数> 超过指定层数的目录后,予以忽略。
- –help 显示帮助。
- –version 显示版本信息。
常用命令
1 | 查看当前文件夹下所有文件大小 |
单位名称
如果你通过 –block-size 选项设置了块大小,那么,这就会成为你 du 输出信息的单位。
假如上一条没满足,且你设置了环境变量 DU_BLOCK_SIZE,则这会成为你 du 输出信息的单位。
假如上两条都没满足,且你设置了环境变量 BLOCK_SIZE,则这会成为你 du 输出信息的单位。
假如前三条都没满足,且你设置了环境变量 BLOCKSIZE,则这会成为你 du 输出信息的单位。
假如前四条都没满足,且你开启了环境变量 POSIXLY_CORRECT,则 du 输出信息的单位会是 512 bytes。
假如前面的五条都没满足,那么 du 的输出信息的单位就是 1024 bytes,也就是 KB。
实例
1,显示目录或者文件所占空间:
1 | du |
只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的 1288 为当前目录的总大小
2,显示指定文件所占空间
1 | # du log2012.log |
3,方便阅读的格式显示 test 目录所占空间情况:
1 | # du -h test |
4,排除隐藏文件和隐藏文件夹
1 | # 了几个隐藏的文件和文件夹 |
5,查看磁盘空间
1 | # 当前文件夹下第一级的大小排序 |
sort -h 选项和-n 选项的区别:
- -n 选项,按数值进行比较,只会傻傻地比较数字,它会认为 98 K 大于 2G。
- -h 选项,会更加聪明,先优先比较单位(G>M>K),然后再对数值进行比较。
参考: