找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12038|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。" V2 D3 Z& l' U. E% Z; d

) \; g! ?" o2 L2 A8 z( N    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
$ L0 O+ p- Y+ m/ c, q3 U    du可以查看文件及文件夹的大小。. Y. @6 \- @; k# R/ S

$ h, [% r  W5 B7 }( Z    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
- ]% M. }) a7 m8 n0 h/ ]
( R& l, L$ K, ^  下面分别简要介绍
0 }* C3 s4 U% \; U, N
0 t9 E8 D; ?  V+ I1 R    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:& e! N8 s/ j  V. @3 i, f1 r+ ~; X
$ z9 {7 S2 ?& w% W2 U  Y
以下是代码片段:9 g7 {9 L5 [$ i6 |# G
4 d! d, U* d# l& y7 r% f8 B$ Z" t
[yayug@yayu ~]$ df -h
4 C1 r  g6 ]" r. i1 m/ Z6 F8 }Filesystem            Size  Used Avail Use% Mounted on
9 `( B9 t5 s" g$ ^/dev/sda1             3.9G  300M  3.4G   8% /
! N' h, r' K& U( `) f  r* `/dev/sda7             100G  188M   95G   1% /data0
! l8 a3 f4 a& w. m# a/dev/sdb1             133G   80G   47G  64% /data13 O2 f* D. I& l9 g7 d
/dev/sda6             7.8G  218M  7.2G   3% /var
0 N: L  L# ^: |0 ~/dev/sda5             7.8G  166M  7.2G   3% /tmp
4 V; S' `% v* f) Y/dev/sda3             9.7G  2.5G  6.8G  27% /usr0 H9 l+ x4 h" U; D# m: |
tmpfs                 2.0G     0  2.0G   0% /dev/shm
4 K* Y2 V/ G  m9 S  b% ^" e
( z" P. j4 y& U9 `/ A1 E5 w 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。4 L- S0 t0 ?  Q$ l, @8 L; S
- y) E$ r* Q( e% C7 x2 ~/ w
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。4 O) u6 j! p- R$ \% i

5 m3 P; N" z/ v1 c" @    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。0 L1 y0 N4 h+ u4 S) \

- \& a  l, I1 v3 [# L1 {    du:查询文件或文件夹的磁盘使用空间
. \# W2 ^/ s4 `  q" q$ r2 V' [9 _) d. G0 y& J9 b
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
$ \7 v, G' s7 d7 o, N
; g6 X5 t+ z" o4 T    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。; m) ^( f, A0 y- p+ N' Q4 z' Z
9 {1 n3 h7 Q! @) q6 X/ B2 q
以下是代码片段:
" ^  F# l. V( D# x, K. |( k. r; g$ `8 Z
[root@bsso yayu]# du -h --max-depth=1 work/testing4 P/ N3 }% d$ N
27M     work/testing/logs
+ A: }/ V, R! U- l0 F) N35M     work/testing4 s, }! O5 x, h  A

. y- Q  C/ e) t$ T3 a3 W[root@bsso yayu]# du -h --max-depth=1 work/testing/*
) l9 s0 R2 L  \1 j9 S# W" H6 d8.0K    work/testing/func.php
9 S  h, v/ m, i& {) c27M     work/testing/logs* ?  {: H/ m# Y: L8 Y
8.1M    work/testing/nohup.out
# G* U' o, C- ^2 O- F) c8.0K    work/testing/testing_c.php! }* ^; x, w0 E$ a; ]( }+ c% s
12K     work/testing/testing_func_reg.php7 O! ]' U1 r: `. \( b* v3 |
8.0K    work/testing/testing_get.php
: Q# ^" {' J: Y% b8.0K    work/testing/testing_g.php$ @# f; E& I2 j
8.0K    work/testing/var.php
, i1 N# ?# O( v2 Z  o" `- f: _7 l; `- G* A1 Q
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
% |1 l3 }8 N6 Z* {' H% v27M     work/testing/logs/
* Q- i3 J" k7 ^, O$ Z0 Z
" v5 Z, u3 b. `. [2 r. H[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*- A. g7 Q, q& ]/ m6 W1 L
24K     work/testing/logs/errdate.log_show.log
0 P+ ~) Z. S1 P8.0K    work/testing/logs/pertime_show.log/ }4 R$ Q2 k+ c, v
27M     work/testing/logs/show.log! F' A$ {, H9 a* `/ i0 N
. ^$ r  d. Y6 O+ a; Y/ B* k
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-2 21:40 , Processed in 0.043189 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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