找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13661|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
0 |  E( Y# K4 y2 t+ Q" V  s. Y9 e+ v/ _4 U/ T+ V
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
7 V/ \4 C. G9 z: M( l3 f# K    du可以查看文件及文件夹的大小。
0 f. z: Z4 Y6 d; i+ P
! z4 S0 |* {0 x7 d    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。; o6 n' N& r7 o# A; t9 [

& h4 u- x& }8 ]9 a  下面分别简要介绍
3 }8 N: _, u( S$ }
! U' T- F! Y" h: h    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
' ?' [- h- b: K7 k
- ~1 h0 U2 g. y- E3 S以下是代码片段:8 m+ e4 H3 e; S7 [& ]6 G2 M
: h3 y! n& _* M4 z5 t
[yayug@yayu ~]$ df -h
8 G$ E# D/ o% lFilesystem            Size  Used Avail Use% Mounted on% k  v5 F) }& _- k4 n5 Z
/dev/sda1             3.9G  300M  3.4G   8% /4 q6 L7 w8 ^1 y% y+ Q9 J/ B
/dev/sda7             100G  188M   95G   1% /data0& e9 O' C* S1 ?6 K- A9 U
/dev/sdb1             133G   80G   47G  64% /data1* K  |. W- W4 f) u4 y! D$ G
/dev/sda6             7.8G  218M  7.2G   3% /var
! P' ]5 f1 x. O3 q1 K* y! O/dev/sda5             7.8G  166M  7.2G   3% /tmp
4 m* m1 Y# V: k1 {+ J! x' r4 l/dev/sda3             9.7G  2.5G  6.8G  27% /usr
5 [" E8 v# X1 Q' O* O! Ztmpfs                 2.0G     0  2.0G   0% /dev/shm5 Z4 g" n6 U! R8 ~8 F, t. g7 S
! ?, x, D. T: |- Q
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
. }; O/ D7 B. b1 p, e1 a' t
2 m9 w; c) z6 c7 d: l: ~    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。; ^3 I& T( q& |; }
8 t6 E- z  i* O2 i
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。9 [. R- I% M6 t2 g5 o4 l

/ c9 Q% F6 ]0 }( s" E" S    du:查询文件或文件夹的磁盘使用空间7 o  B; b6 g& Z7 D, V
* W8 _5 R" E8 `% F
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.0 F. V% }; k+ [/ a6 I

/ N6 A8 z- P0 W! |3 A' X% Q4 E+ J    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
. A7 j/ o1 I3 f/ {! [3 J- y5 m. V" I8 r) q4 o' o
以下是代码片段:
/ w/ z) Z  j. R/ e( m# v$ S( y8 h8 I" T0 X0 m' D+ q
[root@bsso yayu]# du -h --max-depth=1 work/testing( j# n- k& d- s% e$ {- l
27M     work/testing/logs
7 d: ~8 f6 b: H; G- p35M     work/testing$ d- r2 K( o/ z+ j

2 V1 @9 l! _7 ^4 N[root@bsso yayu]# du -h --max-depth=1 work/testing/*
8 M) i4 [% `( V6 p8.0K    work/testing/func.php% D! F! M6 E6 u# Z
27M     work/testing/logs9 I( ?+ w1 J0 ~" h" H* i. A
8.1M    work/testing/nohup.out
) y4 b4 @" l) K5 H: @6 }8.0K    work/testing/testing_c.php
1 U3 R6 t" ?+ L( x+ ~12K     work/testing/testing_func_reg.php
( \( L; j$ }5 X9 W" f8.0K    work/testing/testing_get.php
; L; M8 Q) w2 T* W' D% h6 ?' j8.0K    work/testing/testing_g.php
3 Q' [) T4 x% y. J% |8.0K    work/testing/var.php( N* V# |1 _; c" |
# y+ m) W4 U* I1 Z
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
& j1 Y1 E4 F- }- h) W27M     work/testing/logs/
8 ?1 H  I4 s- O6 T$ w( y: v8 B- {0 S$ a% o  x$ k  G
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
6 _( m. _8 h' [# b" x: U24K     work/testing/logs/errdate.log_show.log
0 ?/ O! _6 x: o' u- G8.0K    work/testing/logs/pertime_show.log
7 _" t3 m: [: e; M27M     work/testing/logs/show.log. m8 k0 N; a' y! [4 u  o* P" p/ B' }

" J1 r3 w, D& l) G
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-6-25 09:52 , Processed in 0.075348 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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