生产中常用的du命令

1. 介绍

du是用来查看文件或目录所占用磁盘空间的大小

du [-abcDhHklmsSx] [-L <符号连接>][-X <文件>][--block-size][--exclude=<目录或文件>]
[--max-depth=<目录层数>][--help][--version][目录或文件]

常用参数

参数 说明
-a -all 为每个指定文件显示磁盘使用情况,或者为目录中每个文件显示各自磁盘使用情况。
-b -bytes 显示目录或文件大小时,以byte为单位。
-c –total 除了显示目录或文件的大小外,同时也显示所有目录或文件的总和。
-D –dereference-args 显示指定符号连接的源文件大小。
-h –human-readable 以K,M,G为单位,提高信息的可读性。
-H –si 与-h参数相同,但是K,M,G是以1000为换算单位,而不是以1024为换算单位。
-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 显示版本信息。

2. 示例:

2.1 -a and -s

# -a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小

# -s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
[root@centos /data]#du -ah /data/
10M	/data/testfile
20M	/data/time.log
5.0M	/data/file.txt
35M	/data/
[root@centos /data]#du -sh /data/    # 查看当前目录总共占的容量。而不单独列出各子项占用的容量 
35M	/data/
[root@centos /data]#du -ch /data/
35M	/data/
35M	total
[root@centos /data]#

2.2 列出 /data 目录中不包括 log 文件的目录的大小

[root@centos /data]#tree /data/
/data/
|-- file.txt
|-- testfile
`-- time.log

0 directories, 3 files
[root@centos /data]#du -ah /data/
10M	/data/testfile
20M	/data/time.log
5.0M	/data/file.txt
35M	/data/
[root@centos /data]#du -sh /data/ --exclude="*.log"
15M	/data/
[root@centos /data]#

2.3 计算所有 log 的大小和总和

[root@centos /data]#find /data/ -type f -name "*.log"|xargs du -ch
20M	/data/time.log
30M	/data/time1.log
26M	/data/time2.log
76M	total
[root@centos /data]#
[root@centos /data]#ls /data/*.log|xargs du -ch
20M	/data/time.log
30M	/data/time1.log
26M	/data/time2.log
76M	total
[root@centos /data]#

2.4 想在一个屏幕下列出更多的关于 /data 目录及子目录大小的信息:

# -0(零)表示每列出一个目录的信息,不换行,而是直接输出下一个目录的信息。
[root@centos /data]#du -0h /data/
91M	/data/[root@centos /data]#

2.5 --max-depth=n 表示只深入到第 n 层目录,此处设置为 0,即表示不深入到子目录。

[root@centos /data/logs]#du -h --max-depth=0 /data/
143M	/data/
# 显示 /data/ 机器下面子目录的大小
[root@centos /data/logs]#du -h --max-depth=1 /data/   #  查看当前目录下一级子文件和子目录占用的磁盘容量。
128M	/data/logs
143M	/data/
[root@centos /data/logs]#
posted @ 2021-03-27 19:08  临江仙我亦是行人  阅读(162)  评论(0编辑  收藏  举报