找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13346|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
" ]8 h0 r1 d; @( U3 D+ k& P  P* |$ b5 O: V4 ^
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。& I# D. e: {$ H  T* L4 i$ P) f
    du可以查看文件及文件夹的大小。
- I  ~  m9 Y7 N; d( l: r) P6 `7 Z% V. W2 D- N
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。& r2 Y+ L7 Y, E4 t
) h% ~" t* v1 }% _: G3 h
  下面分别简要介绍
2 [9 {2 o# g) K# b0 O8 j- E6 O: k8 Y
% T( Q9 b7 S4 O; K( x9 V    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:, L& X# |5 T# F# k" `+ {
1 Q1 N" t5 t% z9 s4 s, W+ N5 H
以下是代码片段:
. \; G- e, d5 F. ^5 @& |6 D( F4 }9 A. g+ e' C+ @+ y
[yayug@yayu ~]$ df -h
; N" ~3 N8 X5 P' aFilesystem            Size  Used Avail Use% Mounted on, B$ n! H$ j4 t: ^. `1 d# o& Q
/dev/sda1             3.9G  300M  3.4G   8% /
% }$ W* u/ C/ K  J# q! G6 Y/dev/sda7             100G  188M   95G   1% /data0# W9 h+ l; J) }9 }7 R& ]& a7 W1 |
/dev/sdb1             133G   80G   47G  64% /data1' l" E0 N6 \0 e2 V2 u$ \% f
/dev/sda6             7.8G  218M  7.2G   3% /var- t9 U& P, q( G( S. X: ^
/dev/sda5             7.8G  166M  7.2G   3% /tmp
8 Q, b  q2 G- i; r) ^/dev/sda3             9.7G  2.5G  6.8G  27% /usr
) ?* d8 A+ v+ M6 L+ K! ztmpfs                 2.0G     0  2.0G   0% /dev/shm$ e1 ?1 [# B9 o

3 S5 E# R% G7 X+ k8 N' O' R$ k 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。6 k/ D$ K0 E8 W7 P( P: z$ l
1 V# _# m3 Y: u  u  G% P# b
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。0 L; [4 ^  a2 s* u5 A" Y+ C; V

+ c; O; M3 @' b: e; a( V4 g, r: e    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。+ s. A, l8 _$ o4 ]( ], l' W5 X; |
3 h0 B/ ^" b! F6 Z7 A& l
    du:查询文件或文件夹的磁盘使用空间
% ^) N( V% ?9 G2 O! A# D4 Q. Y+ Y9 R0 K/ Q$ @
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.5 r6 {" `! }) b7 u

$ a* _( K* J7 y8 w/ V: j( l2 r/ Q    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
( N1 K* K$ d! S, g$ `: q
: `* i4 q7 |) W3 J0 P以下是代码片段:' s, f1 W: `0 S3 }

# v7 G* n% y' V/ F3 D' l' A$ _9 l' L8 e[root@bsso yayu]# du -h --max-depth=1 work/testing
& E+ ]# j. n/ o# u( u) k$ o+ f) }27M     work/testing/logs
. T5 z. D1 R" J( d$ @2 S3 W" S; D35M     work/testing
7 m& a! s5 a5 Q% L5 A
2 A+ Q, l: n4 A+ `; a[root@bsso yayu]# du -h --max-depth=1 work/testing/*" y9 O) b/ i& `$ e( d+ Q2 k3 s
8.0K    work/testing/func.php0 w$ k1 D1 H$ b: @9 Y* C* j
27M     work/testing/logs! Y$ p4 i+ g' I4 D5 ?- R# T( ~
8.1M    work/testing/nohup.out
/ `2 h0 h% \& n0 u) f2 F! M8.0K    work/testing/testing_c.php, \/ z9 J  F5 ?
12K     work/testing/testing_func_reg.php6 Y* P% n4 l! ^  ~9 }1 a; F7 J
8.0K    work/testing/testing_get.php+ [' s$ i2 h$ b3 E$ \4 Z
8.0K    work/testing/testing_g.php
. Y. f/ q& H" ~! {* F. h8.0K    work/testing/var.php! |5 g1 O& u9 a" |

+ }% ~3 L$ i1 ~[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
$ t7 @2 ]0 s+ J3 l( ^. _2 R- l# q27M     work/testing/logs/3 i. D5 l, A( ~( f8 U$ w$ B. c9 S! Y

9 _% ]" `, r4 k[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*: k9 n/ E  ^+ |: P
24K     work/testing/logs/errdate.log_show.log
; k2 a4 G' s) Q' j: T  T) c0 u; u8.0K    work/testing/logs/pertime_show.log
& Y$ d4 J, _' \27M     work/testing/logs/show.log
: J8 {- C+ `4 o, s
( s) K  z% u( c* N% i* H* ~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-5-23 10:32 , Processed in 0.079121 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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