用途

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

用法

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. 微信小程序商品详情 + 评论功能实现

    这是一个商品展示并能进行评论和答复的功能页面, 遇到的问题有: 分享功能没有办法将json数据写在地址中,只能传id来进行获取 这里必须新加一个状态用来判断是否显示x回复@x,因为我以前的判断这个依据 ...

  2. JavaScript--编程挑战

    小伙伴们,请编写"改变颜色"."改变宽高"."隐藏内容"."显示内容"."取消设置"的函数,点击相应 ...

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

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

  4. Android项目实战_手机安全卫士splash界面

    - 根据代码的类型组织包结构 1. 界面 com.hb.mobilesafe.activities 2. 服务 com.hb.mobilesafe.services 3. 业务逻辑 com.hb.mo ...

  5. JS——缓慢动画封装案例

    手风琴 1.排他思想 2.ul宽度需要大一点,防止li撑开跑下去 3.一个变大其他所有变小,变小不能太小,不然会出现空白 <!DOCTYPE html> <html lang=&qu ...

  6. ASP.net参数传递总结

    同一页面.aspx与.aspx.cs之间参数传递 1. .aspx.cs接收.aspx的参数:由于.aspx和.aspx.cs为继承关系,所以.aspx.cs可以直接对.aspx中的ID进行值提取,具 ...

  7. 集合Set、List、Map的遍历方法

    package com.shellway.javase; import java.util.ArrayList; import java.util.Collection; import java.ut ...

  8. TriAquae 是一款由国产的基于Python开发的开源批量部署管理工具

    怀着鸡动的心情跟大家介绍一款国产开源运维软件TriAquae,轻松帮你搞定大部分运维工作!TriAquae 是一款由国产的基于Python开发的开源批量部署管理工具,可以允许用户通过一台控制端管理上千 ...

  9. SQL Server建库-建表-建约束

    ----------------------------------------SQL Server建库-建表-建约束创建School数据库------------------------------ ...

  10. 大白_uva10795_新汉诺塔

    题意:给出所有盘子的初态和终态,问最少多少步能从初态走到终态,其余规则和老汉诺塔一样. 思路: 若要把当前最大的盘子m从1移动到3,那么首先必须把剩下的所有盘子1~m-1放到2上,然后把m放到3上. ...