在linux中经常会查看文件大小,通常用的命令du:
该命令详细解释如下:
[www@server101 logs]$ du --help
用法:du [选项]... [文件]...
或:du [选项]... --files0-from=F
计算每个文件的磁盘用量,目录则取总用量。
长选项必须使用的参数对于短选项时也是必需使用的。
-a, --all 输出所有文件的磁盘用量,不仅仅是目录
--apparent-size 显示表面用量,而并非是磁盘用量;虽然表面用量通常会
小一些,但有时它会因为稀疏文件间的"洞"、内部碎
片、非直接引用的块等原因而变大。
-B, --block-size=大小 使用指定字节数的块
-b, --bytes 等于--apparent-size --block-size=1
-c, --total 显示总计信息
-D, --dereference-args 解除命令行中列出的符号连接
--files0-from=F 计算文件F 中以NUL 结尾的文件名对应占用的磁盘空间
如果F 的值是"-",则从标准输入读入文件名
-H 等于--dereference-args (-D)
-h, --human-readable 以可读性较好的方式显示尺寸(例如:1K 234M 2G)
--si 类似-h,但在计算时使用1000 为基底而非1024
-k 等于--block-size=1K
-l, --count-links 如果是硬连接,就多次计算其尺寸
-m 等于--block-size=1M
-L, --dereference 找出任何符号链接指示的真正目的地
-P, --no-dereference 不跟随任何符号链接(默认)
-0, --null 将每个空行视作0 字节而非换行符
-S, --separate-dirs 不包括子目录的占用量
-s, --summarize 只分别计算命令列中每个参数所占的总用量
-x, --one-file-system 跳过处于不同文件系统之上的目录
-X, --exclude-from=文件 排除与指定文件中描述的模式相符的文件
--exclude=PATTERN 排除与PATTERN 中描述的模式相符的文件
--max-depth=N 显示目录总计(与--all 一起使用计算文件)
当N 为指定数值时计算深度为N;
--max-depth=0 等于--summarize
--time 显示目录或该目录子目录下所有文件的最后修改时间
--time=WORD 显示WORD 时间,而非修改时间:
atime,access,use,ctime 或status
--time-style=样式 按照指定样式显示时间(样式解释规则同"date"命令):
full-iso,long-iso,iso,+FORMAT
--help 显示此帮助信息并退出
--version 显示版本信息并退出
所显示的数值是来自 --block-size、DU_BLOCK_SIZE、BLOCK_SIZE
及 BLOCKSIZE 环境变量中第一个可用的 SIZE 单位。
否则,默认单位是 1024 字节(或是 512,若设定 POSIXLY_CORRECT 的话)。
SIZE 可以是一个可选的整数,后面跟着以下单位中的一个:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,还有 G、T、P、E、Z、Y。
请向[email protected] 报告du 的错误
GNU coreutils 项目主页:<http://www.gnu.org/software/coreutils/>
GNU 软件一般性帮助:<http://www.gnu.org/gethelp/>
请向<http://translationproject.org/team/zh_CN.html> 报告du 的翻译错误
要获取完整文档,请运行:info coreutils 'du invocation'
根据以上参数,平常用的最多的就是-h和--max-depth=N,用法如下:
[www@server101 logs]$ du -h php101
4.0K php101
[www@server101 logs]$ du -h php111
4.0K php111
[www@server101 logs]$
如果要进一步查看,可以运用参数--max-depth=N
比如要看查看当前目录下每个目录的下一级目录(中文件)大小,此时N=2
[www@server101 logs]$ du -h --max-depth=2 ./
4.0K ./php
4.0K ./php101
5.5M ./php102/activity.test.org
8.0K ./php102/adminfw.test.org
8.0K ./php102/admin.test.org
4.7M ./php102/affiliate.test.org
298M ./php102/api.pb.test.org
8.0K ./php102/bidding.m.test.org
304M ./php102/bidding.test.org
372K ./php102/ck.test.org
27M ./php102/comm-bxgxq
717M ./php102/community.test.org
8.0K ./php102/co.test.org
1.1M ./php102/cost.ibs.test.org
如果要继续查看下一级目录,则N=3
[www@server101 logs]$ du -h --max-depth=3 ./
4.0K ./php
4.0K ./php101
5.5M ./php102/activity.test.org/logs
5.5M ./php102/activity.test.org
4.0K ./php102/adminfw.test.org/logs
8.0K ./php102/adminfw.test.org
4.0K ./php102/admin.test.org/logs
8.0K ./php102/admin.test.org
4.7M ./php102/affiliate.test.org/logs
4.7M ./php102/affiliate.test.org
298M ./php102/api.pb.test.org/logs
298M ./php102/api.pb.test.org
4.0K ./php102/bidding.m.test.org/logs
8.0K ./php102/bidding.m.test.org
304M ./php102/bidding.test.org/logs
304M ./php102/bidding.test.org
368K ./php102/ck.test.org/logs
372K ./php102/ck.test.org
27M ./php102/comm-bxgxq/logs
依次改变N的值查看目录层级的大小。然后进入目录,运用du -ah ./查看当前目录下文件的大小
www@server101 huhoo-api]$ du -ah ./
374M ./localhost_access_log.2016-04-27.txt
100K ./localhost.2016-04-27.log
81M ./catalina_112.out.2016-04-28
383M ./localhost_access_log.2016-04-28.txt
96K ./localhost.2016-04-28.log
26M ./catalina_112.out.2016-04-29
174M ./localhost_access_log.2016-04-29.txt
44K ./localhost.2016-04-29.log
74M ./catalina_112.out.2016-04-27
1.5M ./localhost_access_log.2016-04-20.txt
140K ./localhost.2016-04-20.log
79M ./localhost_access_log.2016-04-21.txt
3.1M ./localhost.2016-04-21.log
16K ./catalina.2016-04-21.log
0 ./manager.2016-04-21.log
0 ./host-manager.2016-04-21.log
17M ./catalina_112.out.2016-04-21
64M ./catalina_112.out.2016-04-22
250M ./localhost_access_log.2016-04-22.txt
100K ./localhost.2016-04-22.log
77M ./catalina_112.out.2016-04-23
345M ./localhost_access_log.2016-04-23.txt
88K ./localhost.2016-04-23.log
77M ./catalina_112.out.2016-04-24
367M ./localhost_access_log.2016-04-24.txt
92K ./localhost.2016-04-24.log
82M ./catalina_112.out.2016-04-25
其他参数根据解释可以依次尝试,这里只介绍--max-depth=N,这个在平常的查找哪个文件占用磁盘空间用的频率较高。