找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14317|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。. f/ o. z; _" O* r" r) s  U

5 {4 b+ I( R5 J  V. v    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
0 X  F* _" v! s4 L, Y1 J  I( N    du可以查看文件及文件夹的大小。. k6 T* B7 c" ~  S1 e  v

) L; H, ^; i$ ^    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
" e. p* L- T* q; h0 T% i. t8 T( t% p1 h$ y" ~. s+ u/ v
  下面分别简要介绍  u; N( m. g# G- M. g

7 B8 L3 S+ c2 x* w- B2 |9 w    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
, F$ R1 L2 R3 d" e( N. F6 o
; D; v# Z* [$ y! [0 l以下是代码片段:
2 o( f9 j1 j; q0 D# K
" v3 o/ m3 C2 R) y& t3 i4 n[yayug@yayu ~]$ df -h& g% X% |* z: n
Filesystem            Size  Used Avail Use% Mounted on( ?. H2 X4 I5 b9 X9 L4 |8 d6 F
/dev/sda1             3.9G  300M  3.4G   8% /
2 C+ ^+ J- x. d! |# T/dev/sda7             100G  188M   95G   1% /data0
4 s9 O. q5 X& B/ I0 \# ~0 o/dev/sdb1             133G   80G   47G  64% /data1
7 t7 h; R& r/ V+ u2 l' j0 c/dev/sda6             7.8G  218M  7.2G   3% /var) j. k( \6 O* p! Z% q9 l' n; b
/dev/sda5             7.8G  166M  7.2G   3% /tmp
7 z* t! G* W& Q/ O/ K1 ~/dev/sda3             9.7G  2.5G  6.8G  27% /usr
4 r+ e) P! S/ ^, O% |; atmpfs                 2.0G     0  2.0G   0% /dev/shm+ A) W/ e  F- H% ?( d$ K/ p

1 i, ]& Z! m; V' P4 o( t, V$ x/ z 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。" V: M. k4 ?: c1 w

% i, X$ r0 y- F& e7 E    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
: ]9 o+ n: q; K+ H- n5 i3 F# o) ]5 I7 _" r; W2 ~  @! |
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
/ o% x/ i1 T9 F% W1 Z+ \6 y# ]( C0 I* g
, s; B; j  `# s, Z6 n. h6 r    du:查询文件或文件夹的磁盘使用空间
6 [* h' c8 k; c* S- m" J
. E! w+ f5 K# Q4 ~/ P; }, h    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
. r7 C& x  w! A+ S8 V" ~. ~* u, b- c
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
0 P/ X/ h: }5 U5 }7 w# w; B) y9 V
8 p2 C6 K& _& f3 Z. v以下是代码片段:
3 R) h, i( F" S: J0 W& T7 M2 s* Y
[root@bsso yayu]# du -h --max-depth=1 work/testing
( \$ p7 p# X5 q  h27M     work/testing/logs
! y7 `- p' ^$ a6 [3 w35M     work/testing- s+ E8 M; r1 L+ A
  l3 t2 ~" o# A# U  f& o# n- S8 a
[root@bsso yayu]# du -h --max-depth=1 work/testing/*
" z; K) Q" S+ Y( ?$ G8.0K    work/testing/func.php
4 A6 w- l5 t! o4 N; k' U$ k" n: m& g27M     work/testing/logs
1 e; Z! O/ P$ z6 U" R8.1M    work/testing/nohup.out2 T; Y! v8 ^" B8 ]% J  z
8.0K    work/testing/testing_c.php
8 W& `5 B# R9 b* C/ @, p9 L12K     work/testing/testing_func_reg.php6 ]  U; |1 A+ i0 _' g( ~4 g% F
8.0K    work/testing/testing_get.php
+ P1 X) K  e' M( U2 h) b8.0K    work/testing/testing_g.php
' e6 C4 o7 p' @" D8 a9 G- q) U8.0K    work/testing/var.php
0 i% s  I& m7 G8 t) U/ g6 g0 Y( T# M7 S  O0 _; Q2 E
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/3 \' w( W% U6 K- ~6 k
27M     work/testing/logs/# a$ s5 X/ o7 @8 d" ^$ K

7 a$ H$ B1 ?9 _[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
( Y( I- [0 h& H+ [2 Y; z24K     work/testing/logs/errdate.log_show.log2 j" R, P/ ~& p4 @  o$ x8 {' e" c
8.0K    work/testing/logs/pertime_show.log
2 C# _. `9 b) \" h( C27M     work/testing/logs/show.log0 ?; ?  l/ v% y( A0 w' H$ i
' G# A& ~2 D2 k
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-9-6 03:12 , Processed in 0.074100 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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