用途

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

用法

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.统计所有文件占用空间信息(人类可读方式显示)

 [root@vm assets]# du -ah
19M ./game/game_asia_5_release_1..5_15.zip
20M ./game/game_asia_5_release_1..0_21.zip
20M ./game/game_asia_7_debug_1..0_20.zip
59M ./game
332K ./hotgame/hotgame_asia_5_release_1.3.5.15_1.4.0..zip
332K ./hotgame
34M ./source/asia/com.pokergame.dominoqq_release_1..5_20171223183437.apk
36M ./source/asia/com.pokergame.dominoqq_release_1..0_20180113181031.apk
40M ./source/asia/com.pokergame.susun_debug_1..0_20180110113325.apk
109M ./source/asia
./source/thailand
109M ./source
167M .

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

 [root@vm ~]# echo -e -n 'ntp.conf\0pip-9.0.1.tar.gz' > t.log
You have mail in /var/spool/mail/root
[root@vm ~]# ll
-rw-r--r--. root root Feb : t.log

统计文件占用空间

 [root@vm ~]# du -b -D --files0-from=t.log
ntp.conf
pip-9.0..tar.gz

3.不换行显示

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

4.统计不包含子目录

 [root@vm assets]# du -ah -S
19M ./game/game_asia_5_release_1..5_15.zip
20M ./game/game_asia_5_release_1..0_21.zip
20M ./game/game_asia_7_debug_1..0_20.zip
59M ./game
332K ./hotgame/hotgame_asia_5_release_1.3.5.15_1.4.0..zip
332K ./hotgame
34M ./source/asia/com.pokergame.dominoqq_release_1..5_20171223183437.apk
36M ./source/asia/com.pokergame.dominoqq_release_1..0_20180113181031.apk
40M ./source/asia/com.pokergame.susun_debug_1..0_20180110113325.apk
109M ./source/asia
./source/thailand
.0K ./source
.

5.显示目录总的统计

[root@vm assets]# du -h -s 167M .

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

 [root@vm assets]# ll
total
drwxrwx---. root vboxsf Jan : game
drwxrwx---. root vboxsf Jan : hotgame
drwxrwx---. root vboxsf Jan : source
You have mail in /var/spool/mail/root
[root@vm assets]# du -s --exclude='game'
.
[root@vm assets]# du -s
.
[root@vm assets]# du -s --exclude='game'
.

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

 [root@vm assets]# du -h -b --max-depth= | sort -nr
.
./source
./game
./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

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

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

    前言 工作中每天都在使用常用的命令和非常用的命令,忘记了用法或者参数,都会bing一下,然后如此循环.一直没有真正的系统的深入的去了解命令的用法,我决定打破它.以前看到有人,每天学习一个linux命令 ...

  2. N天学习一个Linux命令之free

    用途 查看系统内存(物理/虚拟/缓存/共享)使用情况 用法 free [-b | -k | -m | -g | -h] [-o] [-s delay ] [-c count ] [-a] [-t] [ ...

  3. N天学习一个linux命令之ping

    用途 检测主机是否可到达,也就是说,目标主机是否可以联网,还可以用于检测网速.通过发送ICMP ECHO_REQUEST数据包检测. 用法 ping [options] destination 常用选 ...

  4. N天学习一个linux命令之kill

    用途 用于终止进程 用法 kill [-s signal|-p] [--] pid... kill -l [signal] 说明 1.默认发送信号15(请求终止进程,程序可以捕获,操作系统会杀死没有对 ...

  5. N天学习一个linux命令之scp

    用途 通过ssh通道,不同主机之间复制文件 用法 scp [options] [user@host:]file1 [user2@host2:]file2 常用参数 -1使用 ssh 1协议 -2使用s ...

  6. 每天学习一个Linux命令-目录

    在工作中总会零零散散使用到各种Linux命令,从今天开始详细的学习一下linux常用命令,坚持每天一个命令,学习的主要参考资料为: 1.竹子-博客(https://www.cnblogs.com/pe ...

  7. 每天一个linux命令:du 命令

    Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. 1.命令格式: du [选项][文件] 2.命令功能 ...

  8. N天学习一个linux命令之umask

    前言 umask不是linux命令,而是shell内置的指令,俗称用户权限掩码,用于对用户创建的文件和目录设置默认权限.默认的权限掩码是0022,也就是说新创建的文件权限是0644,新创建的目录权限是 ...

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

    Linux  du命令也是查看使用空间的,但是与 df  命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看,还是和df 命令有一些区别的. 1.命令格式: du  [选项] [文 ...

随机推荐

  1. [Swift通天遁地]二、表格表单-(18)快速应用多种预定义格式的表单验证

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. Jquery 表单基础元素操作总结

    最近做前端比较多总结一些常用功能: radio 单选选中并且出发change事件: $(selector).find('input:radio[name=valuationMode]').filter ...

  3. group by 和 select

    group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面.

  4. Hadoop Hive概念学习系列之hive里的桶(十一)

    不多说,直接上干货!  Hive还可以把表或分区,组织成桶.将表或分区组织成桶有以下几个目的: 第一个目的是为看取样更高效,因为在处理大规模的数据集时,在开发.测试阶段将所有的数据全部处理一遍可能不太 ...

  5. 7 C#变量-把你想要的东西存在C#程序里边

    现在你已经可以用Console.WriteLine("")在dos窗口里打印一些东西出来,而且你还会使用c#进行数学运算.接下来的一步你要开始学习使用变量了.用c#编程,变量就是一 ...

  6. Git的使用及托管代码到GitHub

    首先Git是一个开源的分布式版本控制工具,用git创建代码仓库. 仓库(Repository)是用于保存版本管理所需信息的地方,本地代码 提交到 代码仓库中,如果需要还可以 再推送到 远程仓库中. 所 ...

  7. Android开发高手课 - 02 崩溃优化(下):应用崩溃了,你应该如何去分析?

    崩溃现场 1. 崩溃信息 进程名.线程名 崩溃类型和堆栈信息 2. 系统信息 Logcat 机型.系统.厂商.CPU.ABI.Linux 版本等 设备状态:是否 root.是否模拟器.是否有 Xpos ...

  8. Showplan 逻辑运算符和物理运算符参考

    本文档已存档,并且将不进行维护. 运算符说明了 SQL Server 如何执行查询或数据操作语言 (DML) 语句. 查询优化器使用运算符生成查询计划,以创建在查询中指定的结果或执行在 DML 语句中 ...

  9. jQuery——事件操作

    事件绑定 1.简单事件绑定 $("button").click(function () {})//可重复绑定,不会被层叠 2.bind():不推荐使用 $("button ...

  10. linux启动时开启screen

    编辑/etc/rc.local 添加 su - ubuntu -c 'screen -dmS ss zserver -p /etc/config'