找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11931|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。5 Q8 H) @7 J& f/ G9 ]- p
' [2 U6 G$ J4 K. u4 t8 ~5 ?
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
! D4 `9 b( f) u7 l0 H0 Y; }    du可以查看文件及文件夹的大小。
( Y1 W: a2 j" E* ^  g" g8 a, `$ c, K
/ D1 b4 d# Z! W( ~! j4 q) S6 _5 F    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。9 j2 ~! w) ], ~+ A! a, h$ u0 ^0 {. H9 x
! W9 m9 n% W' Z5 A7 M+ i
  下面分别简要介绍
1 W' A6 m  ^6 q5 g& h4 F7 u1 U) Z6 M3 _7 C$ H3 V* ]
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:1 S4 D) j8 E* B! B. f5 h, u

3 |- ~# Q" Q" S" y' z# @, K1 `以下是代码片段:
- q/ r6 J) E9 `: `9 L3 k, E  [- E% V9 d! P
[yayug@yayu ~]$ df -h
; w9 s3 x/ z. ^: P4 O% d' fFilesystem            Size  Used Avail Use% Mounted on
3 G6 m% Z2 C6 J" c8 Q+ Z/dev/sda1             3.9G  300M  3.4G   8% /" x3 k6 b+ O3 g; k* A1 H% }. I
/dev/sda7             100G  188M   95G   1% /data0$ q0 h3 _$ R& `  c! ]# @
/dev/sdb1             133G   80G   47G  64% /data14 R. v3 }: w" e6 x
/dev/sda6             7.8G  218M  7.2G   3% /var
5 c1 K3 e# S9 U8 x% r0 ~. Z3 Q) t. y/dev/sda5             7.8G  166M  7.2G   3% /tmp
# u- ~1 @9 [( z. S8 z+ A/dev/sda3             9.7G  2.5G  6.8G  27% /usr2 @; k0 P! k+ Z4 i+ D% w4 A
tmpfs                 2.0G     0  2.0G   0% /dev/shm
' c- t- @( _5 k, s7 k% e( s2 e+ c
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。% h7 c. N! ~* R6 L# S

2 F7 q' }1 R# T- F5 j0 G    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
' u: H  S: }' c- @1 H$ {/ j/ Y9 i4 x2 ~. N% m5 M
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
! j$ Q- X# x& B9 G! ?. C, ~! ?1 R: x" x! t* [
    du:查询文件或文件夹的磁盘使用空间
0 d0 X) q* J. m! s. t* S* M. M1 x! K2 d- Y4 m0 e! F5 ^2 z
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
( A( j8 u( ?3 @8 g4 O3 A. [* P2 W
6 U- {1 W! i, c# u    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。  C" W8 y( `$ {) M( b6 ?  x* G$ ~9 w

6 S+ i2 Y2 F7 H以下是代码片段:
& }( M3 f& M6 [; T9 }* T# r1 @
. v8 R1 @3 x/ b/ v  S[root@bsso yayu]# du -h --max-depth=1 work/testing0 r) }9 W1 y4 ?5 s% ~
27M     work/testing/logs
/ B# X4 }: u( m  [8 y35M     work/testing8 k5 P/ p/ z; F# p
8 P+ g8 T5 n- G# }7 O2 ^
[root@bsso yayu]# du -h --max-depth=1 work/testing/*
7 I3 S- B0 `# L% \1 T1 p+ O- S8.0K    work/testing/func.php' T& }, r& O0 v* T$ E5 y; I+ r% u
27M     work/testing/logs
8 w( k" d3 ]9 }8 s* h8.1M    work/testing/nohup.out! X7 t" [/ i6 {: n0 S3 ^' M$ u# N) S
8.0K    work/testing/testing_c.php% P3 m* s! P0 i0 \! u
12K     work/testing/testing_func_reg.php! J# Q+ P  B! G( L  g, u
8.0K    work/testing/testing_get.php# V1 C/ s/ q6 V; |
8.0K    work/testing/testing_g.php0 H2 R( U+ ~% H/ H
8.0K    work/testing/var.php4 l" P# h9 e( Y- y
6 W! c" T% B8 C" A9 g) n# l
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/3 d0 D/ R: U; Z" T$ f
27M     work/testing/logs/  i8 I7 |9 c; p" ^7 F8 w/ R6 u, [6 k
: L' o# |# F  b  p: f. G
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*$ s5 g3 l  |8 T
24K     work/testing/logs/errdate.log_show.log% ]) T0 F, s4 g# i3 |+ @6 ^  h
8.0K    work/testing/logs/pertime_show.log6 T, X9 H2 U) s% h8 |
27M     work/testing/logs/show.log& ~" s9 a- @+ }- V  _' Y: H
' K4 c8 G) B, h$ L/ o- }: u! M
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-16 21:01 , Processed in 0.083053 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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