找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13159|回复: 0

Linux下查看文件和文件夹大小

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。* C5 O: w4 `6 o) l( M+ C0 S7 d

3 t+ d8 i6 S/ K4 r    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。( h% e8 ?" l9 m1 _7 c, R' Y" m5 A+ q
    du可以查看文件及文件夹的大小。
6 M9 l5 W) g+ q# p+ I" u/ |( `/ h0 E8 w3 w
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
/ F% s# q: h: o/ w4 k
/ R7 h. Z9 C* v+ K  下面分别简要介绍
; J& R; @0 ]9 f5 X$ N5 O( A
& B8 y' W  I. A: u/ w/ |    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
+ N. y7 b& w& B% m( y5 p
- D" }0 X5 R  b) C& Z/ p以下是代码片段:. z0 ?1 p/ {3 \: e7 H
' L; e( i3 f1 Q" H- s
[yayug@yayu ~]$ df -h- N; k7 @, ?( ]# L, n) w- Z$ V
Filesystem            Size  Used Avail Use% Mounted on
3 a$ j6 ?+ M- Z9 _/ U* o/dev/sda1             3.9G  300M  3.4G   8% /  X5 z& |& Y, V1 L0 i% \/ p+ [
/dev/sda7             100G  188M   95G   1% /data0% b- n2 p; u# G# X' I- K
/dev/sdb1             133G   80G   47G  64% /data1
* B- r6 K3 [" v6 o2 t5 }5 q/dev/sda6             7.8G  218M  7.2G   3% /var$ E/ l7 J% ?  t! ~( S( I$ k/ e
/dev/sda5             7.8G  166M  7.2G   3% /tmp. |) j  f! o4 L' d) x% q6 \( {
/dev/sda3             9.7G  2.5G  6.8G  27% /usr; _$ {; V: I# ^! e% z3 b. T, I: f- I
tmpfs                 2.0G     0  2.0G   0% /dev/shm2 J. }1 ?5 j6 W4 R

( N7 U# P+ }; z8 l* z, u2 i. s. l 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。& o$ G" S+ @% B. T6 G5 m
1 [/ K* m0 x/ w5 p6 `( W5 u
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
3 w* A5 q* F% [" K& M* ?, Q. @+ u8 L/ s" U
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
, \- W) H! t1 K4 r9 Y& l' A
& t" x1 }5 Q; A9 h3 L    du:查询文件或文件夹的磁盘使用空间( F- H; y1 K8 O$ \
% N- u$ x" l. c/ y+ j' }2 r
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
% r- a! e+ ~* W" i. B
2 O- ^: M! L* r1 F4 y0 D2 }    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。7 l* V1 S7 J% E' b
) |3 k, H' w, Z" g: ?
以下是代码片段:/ \& O- U6 v$ [& p& a2 b
0 V1 n$ v5 l. e- T
[root@bsso yayu]# du -h --max-depth=1 work/testing1 K/ O9 z( T$ }! E5 m* l
27M     work/testing/logs
. ^2 p, C6 Q7 P* {; o+ Z35M     work/testing
2 r% j% d; q9 b  |
" }1 X/ `5 Y) l5 Q" n/ R0 I[root@bsso yayu]# du -h --max-depth=1 work/testing/*: I9 S# Z5 [. e' J
8.0K    work/testing/func.php% q$ V7 e! y1 K' o$ Q
27M     work/testing/logs
9 ]) }$ |; p+ A  ~" q# t5 Y; f8.1M    work/testing/nohup.out( r# x& ~1 S: ^- y' l6 x
8.0K    work/testing/testing_c.php
& ]3 b8 [$ U! \, n' K- |. j6 Q( Y12K     work/testing/testing_func_reg.php8 T. l: I, }& H' ?6 g: q' v5 y
8.0K    work/testing/testing_get.php3 G8 @% v3 c# X7 D. m
8.0K    work/testing/testing_g.php' C7 U* K* k+ ~" O$ \* i/ ?
8.0K    work/testing/var.php
1 G5 B7 }5 x% Y" X8 W0 Q
5 f4 H! \: Q5 H9 W, s0 g[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/% }8 R$ a: p7 a' `) w. ]( G
27M     work/testing/logs/+ Y+ M& ^) d  m3 O2 U) a
' _% Z4 v" g4 m
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
, w% J- W; W% r- r; N0 s3 g24K     work/testing/logs/errdate.log_show.log& y! l; o( |4 M4 b0 ~$ y' N/ J
8.0K    work/testing/logs/pertime_show.log; ~$ `4 l% R( a# Q8 P  {1 n6 {$ o
27M     work/testing/logs/show.log' p3 c( `# n# k; {3 ~3 E
% X4 U: u4 p& m: V# i& a
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|第一站论坛 ( 蜀ICP备06004864号-6 )

GMT+8, 2026-5-6 10:00 , Processed in 0.075199 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表