找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14280|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。- S2 T. t/ i" }+ Q
, F4 P( R, K+ Y5 o- D1 p9 l0 a
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
. i" ]  ^( l/ i! [+ i/ H! D3 Q  c    du可以查看文件及文件夹的大小。
' r4 \/ _3 ?* v1 L. U+ o: s$ x6 i4 ]% x' {& j( e3 z) `
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。. S8 b4 ]) \) G1 o

# U) R  o; S; v! L% @! G$ R  下面分别简要介绍
' h4 ]  q' Y  v% m5 z8 r5 {  x; A& E0 i- y2 l" M
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
3 a4 G+ K! Q$ e' i% Z( \
/ p! S  O. M- l以下是代码片段:
  z0 l3 }- R0 s  {& J5 z% h; ?0 {; ]- h. q8 R% |, j5 U0 e2 d" }! K
[yayug@yayu ~]$ df -h: c* r1 S6 f. R1 s/ K
Filesystem            Size  Used Avail Use% Mounted on
& S( k, B) V* Z3 h/dev/sda1             3.9G  300M  3.4G   8% /
5 C0 L5 G) l1 ?5 R; O/dev/sda7             100G  188M   95G   1% /data0$ P8 z) V- R7 Y. v" L
/dev/sdb1             133G   80G   47G  64% /data1: `" n  c  O3 I9 \( O# M# U& ]+ V6 R$ h
/dev/sda6             7.8G  218M  7.2G   3% /var$ A, Z3 z* D1 w" t# F" l
/dev/sda5             7.8G  166M  7.2G   3% /tmp5 w! E1 g4 j9 f/ S
/dev/sda3             9.7G  2.5G  6.8G  27% /usr  n$ h5 ~) ?* ?
tmpfs                 2.0G     0  2.0G   0% /dev/shm: f* p5 q' |) |/ H3 @7 B6 o) d! x

1 M' v7 L; Q0 h0 Z: w. G, E 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
: z. M5 @3 f' }- j5 ~
, T  C6 B' E- o! K7 [; \9 ^/ L    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
# T. C" r+ c1 O! r* N- ^! F! S/ i
& B4 x# h" f* m' O# Z6 _2 W# G. A& U1 F    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。0 k. N* C% w+ N+ f- g
3 [1 |: W' s- ^4 Z, n9 Z- c
    du:查询文件或文件夹的磁盘使用空间3 ?  P: j4 Q$ ~
4 A8 ^. |' q, g! `0 G- I
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
' ~9 |" `+ K. Q9 I' S  v; U
/ N9 w" k6 X) e1 S5 M    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
) K3 L" f* f- y# i# N2 _! u) F; a$ ?  A% w( u! {2 |2 U
以下是代码片段:
% \" |% n4 }0 P* }; ?) W% p8 w0 t% U2 t( S
[root@bsso yayu]# du -h --max-depth=1 work/testing8 m& ?: u# o7 X' v
27M     work/testing/logs
: E2 y- u8 d  }; D+ n  G35M     work/testing
- `+ g/ b0 k+ d( j& d2 Y
1 p9 R7 i' T' N2 C* u[root@bsso yayu]# du -h --max-depth=1 work/testing/*
; t$ j/ y1 \9 [2 {8.0K    work/testing/func.php
$ K- E3 A- O/ K9 o27M     work/testing/logs
& T: g! L* K- V1 Y$ `) o/ K- q$ \# I$ G, l8.1M    work/testing/nohup.out/ g) V5 |3 {: l; `& D: G/ H
8.0K    work/testing/testing_c.php0 \1 u9 U6 O4 o/ ]( n
12K     work/testing/testing_func_reg.php
4 X* c; q, ~2 O7 M' R2 X: C5 p8.0K    work/testing/testing_get.php- W/ ^$ ^6 G9 j8 R+ y
8.0K    work/testing/testing_g.php
: }/ c6 ]& y; S4 Z* Z$ L& i8.0K    work/testing/var.php+ J3 u5 J' d7 n
. s! V% Y7 k) D$ q* N; M# Z- @
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
) _4 M' m+ G. {) o( X9 e* q' d27M     work/testing/logs/
" X  l/ I2 l; W# u# `# b. t6 E/ ^9 `; K) d8 V' R
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*5 f( Z. `. g; T
24K     work/testing/logs/errdate.log_show.log
9 C  w$ s6 O& H$ ^1 w% e8.0K    work/testing/logs/pertime_show.log
9 L% H9 B$ K# m. @& D" o$ ?27M     work/testing/logs/show.log
8 d6 i8 Q: u& d2 |$ ^5 q/ |9 y5 G# G8 m' T
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-9-1 01:55 , Processed in 0.065686 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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