找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8553|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。8 ?% z' r5 r4 e% |

& r# V+ Q$ M3 v3 B, Z" b    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。; V/ ?* u. O+ I
    du可以查看文件及文件夹的大小。+ n& x: y0 u6 ]

0 S- s2 s. _# U' O! z1 ~    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
/ g/ @  q/ d: b" W) I( ]7 a
& j# x  S( e; j5 D  下面分别简要介绍
* r$ V, k, R; \: k8 v- I7 b2 T- z$ F' O6 j, X" [4 t; i% K: K9 K
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
; i3 [1 I% V& ]4 R% C# L8 `) c# X/ d8 a3 |8 Y6 A: }
以下是代码片段:# n' w7 G& ^( z: @4 T+ F9 v3 q
' L6 ~. H# G. j  S4 i* w* D; |- c8 X+ _
[yayug@yayu ~]$ df -h1 l0 r* R: L! |* L& G  k6 G0 X0 w
Filesystem            Size  Used Avail Use% Mounted on
/ C% F7 s! J- V) E% k; J/dev/sda1             3.9G  300M  3.4G   8% /5 X, x/ I& g, W
/dev/sda7             100G  188M   95G   1% /data0
, c4 c+ |% `9 p% w+ X/dev/sdb1             133G   80G   47G  64% /data1
# u; S; C) A2 {+ n2 _/dev/sda6             7.8G  218M  7.2G   3% /var
2 Y& h" g, P) N3 Z7 I" U0 |5 t/dev/sda5             7.8G  166M  7.2G   3% /tmp( @$ C; |: G9 R2 d8 B4 o
/dev/sda3             9.7G  2.5G  6.8G  27% /usr# J* r& m! ?  ^  a  b4 X0 k9 @: v& g
tmpfs                 2.0G     0  2.0G   0% /dev/shm
4 d6 _5 V2 t3 y9 [, a5 p+ \
+ |& a' H- w( {. t 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。4 x  b3 I1 j4 X5 i) \
0 s8 C. x/ h* E
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。; |: J  e( Z4 R' H

  ~7 m+ \$ z2 l' n% D; I. y    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
# b& D& I$ _: l- ]+ n. d3 O6 b- \; m& \; x9 _
    du:查询文件或文件夹的磁盘使用空间
% K; @0 Z$ [, A4 i9 }% }1 m/ N+ U% k% M
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.2 R; v# ?* H% a; ~% X& {

1 K' Z6 M5 \* K' j9 C) r0 M; i+ l    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。. q# k3 E$ Q* z' H
+ }8 F3 |* i& K$ S3 l# o/ Z. J: y
以下是代码片段:
* x  X/ S3 B! l" A8 X" v* C' [3 B. B, o: L3 W2 `
[root@bsso yayu]# du -h --max-depth=1 work/testing
3 }8 W  G' J; Z' X27M     work/testing/logs; o( L* @3 p: p2 V+ D1 I8 q7 J
35M     work/testing
& d4 |& N) \) ]) Q, u, O/ S
" ?- C6 D7 H& U9 _1 `  x2 k[root@bsso yayu]# du -h --max-depth=1 work/testing/*% [  C; M. z0 d
8.0K    work/testing/func.php, F6 L8 q: l8 }
27M     work/testing/logs
% P- m% J/ r9 ~9 x# Q. k! B2 E0 v7 B8.1M    work/testing/nohup.out
+ Z( `9 d7 B0 I, D' V4 E8.0K    work/testing/testing_c.php) N, K5 O: ^; d" b" G7 d
12K     work/testing/testing_func_reg.php. C6 u7 Y4 M# N, A3 T
8.0K    work/testing/testing_get.php! v+ ]1 p( B  u$ ?6 h
8.0K    work/testing/testing_g.php: e' h/ Q5 \+ D, Q7 B. Q3 A8 G
8.0K    work/testing/var.php; e# P  Q1 Y+ Y3 @

3 Z$ ~8 @, _3 f[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/, F6 D& c  h( T' f7 u- c: s. x
27M     work/testing/logs/
1 {& p  z4 |) L. g# f; N" }  S% G% `* }# h3 S2 e7 O" ~
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*# s, }) I8 }( d9 t9 T5 ~( X+ A' ~" j
24K     work/testing/logs/errdate.log_show.log
/ E( o+ _# H$ ~; g8.0K    work/testing/logs/pertime_show.log7 g9 T$ F- K3 i% F7 g- J
27M     work/testing/logs/show.log
8 L# g' l4 g( v$ C6 R  {$ {
4 F0 s# k4 n  C7 E- }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-10-18 12:57 , Processed in 0.073555 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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