用来查看linux下文件或目录占用的磁盘空间
du * 默认显示目录内所有文件夹和./内文件的大小,以K为单位。--或--null 将du的结果放在一行显示。-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、查看文件大小
2、以K/M/G等可读单位查看文件大小(进制1024)
3、查看目录内文件大小:
4、列出目录下所有节点,一个文件或一个目录算一个节点(例如一个文件夹下有两个文件,就是三个节点)
5、不深入到子目录查看大小:
du -h --max-depth=0 *
6、列出当前目录中不包括in字符串的文件或文件夹的大小:
du -h --exclude='*in*' *
7、按照从大到小排序,列出当前目录的文件:
du -sh * |sort -nr
sort命令的n是以数值排序,默认是从小到大的顺序,-r是倒序的意思
这里用的是centos7.2系统,这里发现按照h模式列出,但是sort函数会忽略单位,所以这里会把8K排列到4M前面,可以用byte或者-H来列出文件大小,以解决这个问题
8、按照文件占用的存储块从大到小列出当前目录的文件,包括总和:
du -c * |sort -rn
对比一下 –bytes的结果,感觉有些奇怪
为什么实际大小是66字节的文件和实际大小是1954的文件占用的存储块是一样的呢?这个与设置文件系统时规定的最小存储块有关,也就是说即使1字节的文件,也需要占用4块的空间,这是为了减少文件碎片、增加磁盘io效率;
以上是经常用到的命令组合,欢迎大家留言share更多的du党命令,我们分享的命令也会由简入深,希望感兴趣的同学可以跟我们一起玩转linux命令。