N天学习一个linux命令之du

用途

统计文件或者目录占用硬盘空间大小

用法

du [OPTION] [FILE]
du [OPTION] --files0-from=F

常用参数

-a, --all
统计所有文件,不仅仅是目录

-b, --bytes
字节为单位统计

-c, --total
输出总大小

-D, --dereference-args
对命令行列出的链接文件,按照链接文件指向的真实文件大小统计,默认是链接文件的大小

--files0-from=F
从指定的文件F中读取需要统计的文件列表,多个文件名使用空字符(\0)分隔(NUL-terminated file names)。如果是"-",表示从标准输入流中读取。

-h, --human-readable
人类可读方式显示

--si
和-h选项一样,倍数是1000不是1024

-k
以k为单位

-l, --count-links
重复计算硬链接

-m
以m为单位

-L, --dereference
所有的链接文件以真实的文件大小统计

-P, --no-dereference
链接文件统计自身大小,默认

-0, --null
输出不换行显示,空字节连接

-S, --separate-dirs
统计时,不包含子目录

-s, --summarize
显示文件总的统计

-x, --one-file-system
忽略不同文件系统的目录

-X, --exclude-from=FILE
从文件中读取需要排除的文件列表,文件名可以包含shell通配符

--exclude=PATTERN
符合匹配模式的文件不统计

--max-depth=N
统计目录深度,N=0类似于-s选项,N=1统计到第一层子目录,依次类推

--help
输出帮助信息

--version
输出版本信息

实践

1.统计所有文件占用空间信息(人类可读方式显示)

 1 [[email protected] assets]# du -ah
 2 19M ./game/game_asia_5_release_1.3.5_15.zip
 3 20M ./game/game_asia_5_release_1.4.0_21.zip
 4 20M ./game/game_asia_7_debug_1.4.0_20.zip
 5 59M ./game
 6 332K    ./hotgame/hotgame_asia_5_release_1.3.5.15_1.4.0.21.zip
 7 332K    ./hotgame
 8 34M ./source/asia/com.pokergame.dominoqq_release_1.3.5_20171223183437.apk
 9 36M ./source/asia/com.pokergame.dominoqq_release_1.4.0_20180113181031.apk
10 40M ./source/asia/com.pokergame.susun_debug_1.4.0_20180110113325.apk
11 109M    ./source/asia
12 0   ./source/thailand
13 109M    ./source
14 167M    .

2.统计空字符分隔的文件列表,链接文件显示真实的大小,以字节为单位
生成空格分隔文件列表

1 [[email protected] ~]# echo -e -n ‘ntp.conf\0pip-9.0.1.tar.gz‘ > t.log
2 You have mail in /var/spool/mail/root
3 [[email protected] ~]# ll
4 -rw-r--r--. 1 root root       25 Feb 26 18:12 t.log

统计文件占用空间

1 [[email protected] ~]# du -b -D --files0-from=t.log
2 1830    ntp.conf
3 1197370 pip-9.0.1.tar.gz

3.不换行显示

1 [[email protected] assets]# du -ah -0
2 19M ./game/game_asia_5_release_1.3.5_15.zip20M  ./game/game_asia_5_release_1.4.0_21.zip20M  ./game/game_asia_7_debug_1.4.0_20.zip59M    ./game332K  ./hotgame/hotgame_asia_5_release_1.3.5.15_1.4.0.21.zip332K  ./hotgame34M    ./source/asia/com.pokergame.dominoqq_release_1.3.5_20171223183437.apk36M    ./source/asia/com.pokergame.dominoqq_release_1.4.0_20180113181031.apk40M    ./source/asia/com.pokergame.susun_debug_1.4.0_20180110113325.apk109M    ./source/asia0  ./source/thailand109M   ./source167M    .

4.统计不包含子目录

 1 [[email protected] assets]# du -ah -S
 2 19M ./game/game_asia_5_release_1.3.5_15.zip
 3 20M ./game/game_asia_5_release_1.4.0_21.zip
 4 20M ./game/game_asia_7_debug_1.4.0_20.zip
 5 59M ./game
 6 332K    ./hotgame/hotgame_asia_5_release_1.3.5.15_1.4.0.21.zip
 7 332K    ./hotgame
 8 34M ./source/asia/com.pokergame.dominoqq_release_1.3.5_20171223183437.apk
 9 36M ./source/asia/com.pokergame.dominoqq_release_1.4.0_20180113181031.apk
10 40M ./source/asia/com.pokergame.susun_debug_1.4.0_20180110113325.apk
11 109M    ./source/asia
12 0   ./source/thailand
13 4.0K    ./source
14 0   .

5.显示目录总的统计

1 [[email protected] assets]# du -h -s 2 167M .

6.不统计包含game关键字的文件

 1 [[email protected] assets]# ll
 2 total 8
 3 drwxrwx---. 1 root vboxsf 4096 Jan 17 11:15 game
 4 drwxrwx---. 1 root vboxsf    0 Jan 17 11:24 hotgame
 5 drwxrwx---. 1 root vboxsf 4096 Jan 17 11:02 source
 6 You have mail in /var/spool/mail/root
 7 [[email protected] assets]# du -s --exclude=‘game‘
 8 111196  .
 9 [[email protected] assets]# du -s
10 170708  .
11 [[email protected] assets]# du -s --exclude=‘game‘
12 111196  .

7.统计子目录空间,并按降序排列

1 [[email protected] assets]# du -h -b --max-depth=1 | sort -nr
2 174782502   .
3 113516252   ./source
4 60929746    ./game
5 336504  ./hotgame

参考资料

【1】Linux Shell 通配符、元字符、转义符使用实例介绍
http://www.cnblogs.com/chengmo/archive/2010/10/17/1853344.html
【2】man du
【3】每天一个linux命令(34):du 命令
http://www.cnblogs.com/peida/archive/2012/12/10/2810755.html
【4】Representing/quoting NUL on the command line
https://unix.stackexchange.com/questions/160598/representing-quoting-nul-on-the-command-line

原文地址:https://www.cnblogs.com/wadeyu/p/8476074.html

时间: 2024-08-02 23:40:44

N天学习一个linux命令之du的相关文章

N天学习一个Linux命令之帮助命令:man

前言 工作中每天都在使用常用的命令和非常用的命令,忘记了用法或者参数,都会bing一下,然后如此循环.一直没有真正的系统的深入的去了解命令的用法,我决定打破它.以前看到有人,每天学习一个linux命令,我现在没有这么充足时间,我恐怕一周学习一个linux命令我都做不到,想想我还是N天学习一个linux命令吧,从现在开始算起. 用途 显示命令帮助文档以及用法 用法 man [options] [section] cmd 命令文档部分说明 The table below shows the sect

每天学习一个LINUX命令:ls 目录列表(list 清单目录 名单)

ls命令用于显示文件目录列表.当不加参数时,默认列出当前目录的列表信息. 语法参数: ls [参数] [目录或文件名] 参数(注意区分大小写) -a:显示所有档案及目录(ls内定将档案名或目录名称为"."的视为影藏,不会列出):-A:显示除影藏文件"."和".."以外的所有文件列表:-C:多列显示输出结果.这是默认选项:-l :与"-C"选项功能相反,所有输出信息用单列格式输出,不输出为多列:-b:将文件中的不可输出的字符以反

N天学习一个linux命令之ping

用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选项 -A 根据round-trip time自适应调整每次发包的间隔时间 -b 允许ping广播地址 -c count 设置发送包数量,默认会一直发 -d 设置socket SO_DEBUG选项 -f 极限检测,尽最大可能发送最多的包 -i interval 发送下一个包需要等待的时间(单位:秒),

N天学习一个Linux命令之free

用途 查看系统内存(物理/虚拟/缓存/共享)使用情况 用法 free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [-l] [-V] 常用选项 选项 含义 说明 -b 单位byte switch displays the amount of memory in bytes; -k 单位k switch (set by default) displays it in kilobytes; -m 单位m switch

每天一个linux命令:du 命令

Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命令功能: 显示每个文件和目录的磁盘使用空间. 3.命令参数: -a或-all  显示目录中个别文件的大小. -b或-bytes  显示目录或文件大小时,以byte为单位. -c或--total  除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和. -k或--kilobytes  以KB(10

每天一个linux命令(33)--du命令

Linux  du命令也是查看使用空间的,但是与 df  命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和df 命令有一些区别的. 1.命令格式: du  [选项] [文件] 2.命令功能: 显示每个文件和目录的磁盘使用空间. 3.命令参数: -a或-all 列出目录下所有文件并显示每个文件的大小 -b或-bytes 显示目录或文件大小时,以byte 为单位 -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和 -k或--kiliby

N天学习一个linux命令之ip

用途 show / manipulate routing, devices, policy routing and tunnels 用法 通用格式 ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | addrlabel | route | rule | neigh | tunnel | maddr | mroute | monitor } OPTIONS := { -V[ersion] | -s[tatistics

N天学习一个Linux命令之帮助命令:grep

前言任何系统都会出问题,出了问题一般怎么排查BUG?这个时候程序中记录的异常日志以及关键节点的日志就非常重要了,面对一大堆的日志文件,怎么找出我们需要的有用信息呢?linux中可以使用grep命令查找,这个命令的功能非常强大,也是我平时中排查线上错误时使用最多的命令之一. 命令名称grep 用途查找指定文件内包含指定关键字(正则表达式)的内容,按行为单位匹配 使用格式grep [OPTIONS] PATTERN [FILE...] 常用选项-V (显示命令版本) 正则模式匹配版本-E, --ex

每天学习一个LINUX命令:cd 切换目录 (change directory 更改目录)

cd命令用来切换工作目录至dirname. 其中dirName表示法可为绝对路径或相对路径.若目录名称省略,则变换至使用者的home directory(也就是刚login时所在的目录).另外,~也表示为home directory的意思,.则是表示目前所在的目录,..则表示目前目录位置的上一层目录. 语法参数: cd [dirName] 用法实例: cd 进入用户主目录:cd ~ 进入用户主目录:cd - 返回进入此目录之前所在的目录:cd .. 返回上级目录(若当前目录为"/",则