找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12961|回复: 0

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

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

' O+ \7 |7 y$ [: d( w1 n    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
* p4 M5 ?$ H" g; n& s! I  o    du可以查看文件及文件夹的大小。' \/ [5 D# C, l; @  @" [9 Y6 Z

' f& o9 ~; ]% |- V& I    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
6 J: n: u+ e. k& L
6 Z$ R; X- ~9 g- z0 \& C9 R9 p  下面分别简要介绍
3 d$ d% B( E% m' H8 C' ^6 d& y: b; a
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
7 [) s1 C9 f9 [$ e
+ ^$ t7 o, t3 [% a5 Z  u+ |& G9 R" x以下是代码片段:
6 i; ?) c8 P% v3 c2 p1 b4 O# r
0 k, A7 X2 U3 e2 t5 l+ n. `[yayug@yayu ~]$ df -h+ Q  A- L  B. X
Filesystem            Size  Used Avail Use% Mounted on
; p- \% Y6 b4 C: i/dev/sda1             3.9G  300M  3.4G   8% /
' U9 @5 ~" g" K0 s) N. }/dev/sda7             100G  188M   95G   1% /data0, r' E( r' q4 N1 A& e
/dev/sdb1             133G   80G   47G  64% /data1( Y4 [7 S: Q/ d; N
/dev/sda6             7.8G  218M  7.2G   3% /var( g: B! p9 }& @" {9 y
/dev/sda5             7.8G  166M  7.2G   3% /tmp+ w. a0 D* A% f, J
/dev/sda3             9.7G  2.5G  6.8G  27% /usr3 T  {. b6 E( j. V8 H: W
tmpfs                 2.0G     0  2.0G   0% /dev/shm, h3 U% w( J* X) U0 _9 @
, n7 C; j( x  U
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。8 k8 {$ D! c& T' I- d

" i  V! _! |  E+ P" g    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。/ f! M3 d( ~# c0 A; x% r
3 V, G1 _- U2 H( K# j' @
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。$ u( d+ g4 e, u9 Q' O% D% k4 K

5 v# h; E, V8 }8 z$ _# O2 s    du:查询文件或文件夹的磁盘使用空间
6 a; {' g; Z( V! [' H( E9 V) b/ E: }2 {6 x9 b9 g( E" q1 i. }
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
" D9 D  {8 ]: _4 E( g
5 a# n$ A5 _6 _. L# c    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。# G; N+ b7 ^' @+ B* r1 t
/ J$ M3 M. i, B
以下是代码片段:5 b; i1 z+ c  e0 X/ M1 [. I

, y3 M0 _5 A9 T[root@bsso yayu]# du -h --max-depth=1 work/testing
1 X% d/ f' \, j  g27M     work/testing/logs
% j7 x7 {6 D" C- N) B' h35M     work/testing  O6 M7 H& Y$ r1 E* L& G$ x7 ]
+ V$ Q6 R3 S4 a  p3 S
[root@bsso yayu]# du -h --max-depth=1 work/testing/*8 N4 ?) [( S1 s  }, f: W
8.0K    work/testing/func.php
# V$ |) j$ b; J; A2 }" \27M     work/testing/logs
+ p0 Z1 j' W) _9 C9 j. B! W+ ?! M" n8.1M    work/testing/nohup.out* i: K5 `3 S. a# t0 t- D/ J9 V
8.0K    work/testing/testing_c.php
  W: G7 n) J7 ^* o, q& H: N$ j12K     work/testing/testing_func_reg.php/ b/ c6 n6 @( _) W+ b# [
8.0K    work/testing/testing_get.php
' a% R0 R7 r' g, u9 s4 J8.0K    work/testing/testing_g.php
; G: X3 ^# Y# R8.0K    work/testing/var.php0 `" _9 b2 c" b8 k. Q8 S# L
: M, P8 d9 Q  c, D) X
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/3 n' ~9 u& E- D" p1 T3 M
27M     work/testing/logs/2 Z" H) r' ?+ ~% @
  g3 W( |  E& Z2 P
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
. G- M" R- H5 J9 j6 b/ E% V+ |/ S24K     work/testing/logs/errdate.log_show.log
' E: k6 G* @/ r5 t  w3 @# k8.0K    work/testing/logs/pertime_show.log
" x+ y7 ~, ^  ^! J1 @- T  [27M     work/testing/logs/show.log8 A9 X# d; @* `( i1 w$ T: W

; L9 p% \! U6 Q% [5 g8 w
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-14 15:48 , Processed in 0.071380 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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