找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13549|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
7 L$ e$ C6 x+ l8 l0 g( T8 i
0 J0 o" [' A+ N0 O7 V" d# p    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
+ ~! b* ~9 Q' \' b) H- q/ i5 [! j6 N    du可以查看文件及文件夹的大小。
8 U$ G8 m, J" m4 d4 s9 a2 M7 _& q. M3 t$ z) |; H! E
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。5 c' O2 x0 y0 S3 X

8 d3 A, l  L& s) m) |  下面分别简要介绍
4 |9 k2 X4 Q0 c* X* q3 Y$ L. e. n
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:. m/ h7 N6 `' j! k& h; z
1 r' l! v) w: t& [1 F
以下是代码片段:& j- c& B* f2 k+ K

4 Z- S- q$ _! v" J. [. C. H6 n% C[yayug@yayu ~]$ df -h4 j$ z* [- i, _4 m  }8 _9 m
Filesystem            Size  Used Avail Use% Mounted on2 T* r6 b$ b# E7 W+ ?3 a
/dev/sda1             3.9G  300M  3.4G   8% /% l* i: ~+ q; d* T& C; s; f4 _
/dev/sda7             100G  188M   95G   1% /data0' j. Z; U5 Z  i/ S0 c  F$ `' [! {0 j
/dev/sdb1             133G   80G   47G  64% /data1
- o) S/ W0 m& W: a+ c+ y/dev/sda6             7.8G  218M  7.2G   3% /var
' w3 _7 I2 }+ ~* _# h  U/dev/sda5             7.8G  166M  7.2G   3% /tmp9 {% D. z0 J# Y) g" l
/dev/sda3             9.7G  2.5G  6.8G  27% /usr8 e$ V7 J, ~) T% w
tmpfs                 2.0G     0  2.0G   0% /dev/shm
! J# Q$ x# _, M6 Q5 B& ^  \+ D- R! \8 r+ k' u& S8 `
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
/ b/ i; o: B) T/ c. ?2 d# B
" G$ ~1 n1 V+ H+ \+ a% b    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。, Q3 y& [8 K: m& Z3 Z- Q: e. O  f

" p/ w/ m5 Y7 Y7 C; p' {! Z8 w5 j    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。, x7 ~. @, j0 j, [
- [) C' r! g( N; T: }) a
    du:查询文件或文件夹的磁盘使用空间
  U& `, O& L( B# c: i8 x* J; C. ^: \- M, o
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.8 X6 J" `! B* n( ?3 o

, m* J9 i4 s4 D$ ?4 p- v    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
$ p. k) ?- S  Q/ q/ W. r
2 F: r# L" P1 |$ p9 ]! A' U以下是代码片段:: c1 ^8 B# Q+ J6 q7 L5 w$ _& J
& w) y- n* ^* A4 |+ i1 H
[root@bsso yayu]# du -h --max-depth=1 work/testing2 b- L) i- Y% Q  _
27M     work/testing/logs/ ^- v+ K$ ]+ ^+ E
35M     work/testing
* l0 X+ B  [, H; X6 q) J' V' l
6 ?& A9 j+ G7 H7 `$ z$ _[root@bsso yayu]# du -h --max-depth=1 work/testing/*
* S1 d( ^& ?5 |% ]8.0K    work/testing/func.php5 E' E% W3 k$ B# I; V; y$ G+ a
27M     work/testing/logs: y) ?7 F6 }% {! z4 @
8.1M    work/testing/nohup.out
1 m$ \  t* M$ G+ k& i% F; w8.0K    work/testing/testing_c.php2 G* L7 f* B: F7 D: R) c1 n
12K     work/testing/testing_func_reg.php
6 t2 M7 h# z5 [8 `& Z$ w. J8.0K    work/testing/testing_get.php
/ l( O- b3 z( v8.0K    work/testing/testing_g.php
6 E5 ?, V+ \, l2 ?4 [  O# X8.0K    work/testing/var.php  R2 ]  i) ?# f! p& n0 d

, Y; z1 {4 M# Z% b2 q/ Z$ _0 A[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/+ ]- f/ E& O$ Z* k9 j) B  _
27M     work/testing/logs/
9 C- W4 |5 s& E+ v5 J" p$ M# O/ Y2 y( J
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
& @% e7 k7 p7 c' W# ]4 [24K     work/testing/logs/errdate.log_show.log
( |" x; m# L! X' t2 a# O# n/ m- U! I8.0K    work/testing/logs/pertime_show.log
1 u8 T, [9 W# U* D. J27M     work/testing/logs/show.log4 p- J7 s1 [" P) W* r1 |
; b8 n: P# }' x6 e: v' Z* n0 }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-6-13 14:36 , Processed in 0.057093 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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