找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13128|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。. v/ _; b7 M4 d& D( ^4 i6 ?; ]
% B" n+ E6 v: d( @! c: E# s2 M
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
, n- {" P. w! {6 H9 s    du可以查看文件及文件夹的大小。
- L0 K" @2 [* |3 Z, [/ W; d$ {3 V0 f* r, y9 v9 Q2 r
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。. a' b/ b% G+ _

# ^! S, k: w5 f9 j  下面分别简要介绍( Q8 _% L9 Q/ Q
; n1 B  r+ ~, L9 x- `/ P  k
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
' ]3 i& K, z. F* B1 {
$ l  Y2 F4 }" m7 a0 i- o  @5 O以下是代码片段:. H$ |2 e  j/ P4 }/ ]
6 S  G& z* j* C. L: r$ y3 ]
[yayug@yayu ~]$ df -h8 V& H: `, f$ y$ P
Filesystem            Size  Used Avail Use% Mounted on
; d) S( K% D! ^  i& ]/dev/sda1             3.9G  300M  3.4G   8% /
1 w5 c9 v1 ^+ P1 _/dev/sda7             100G  188M   95G   1% /data0
2 b( p9 B/ M4 Z) U7 c# x/dev/sdb1             133G   80G   47G  64% /data1! z7 y0 Y- t# ^5 O3 d$ A! ?% _
/dev/sda6             7.8G  218M  7.2G   3% /var) I$ F0 U- @; Y. z
/dev/sda5             7.8G  166M  7.2G   3% /tmp
, l0 C1 \' h# {3 q9 W) K# C/dev/sda3             9.7G  2.5G  6.8G  27% /usr
  P0 e8 O; z- S" |) stmpfs                 2.0G     0  2.0G   0% /dev/shm4 Y' Y4 ]# N7 D( L
  N* e$ Q$ Q4 c. n: P- R1 w
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
3 }) T5 Y* s, o5 [7 J
" [4 q8 ?5 g6 D1 S% D* k    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。" K1 \/ f0 B$ q9 `

& S& A+ A' u4 L! p' L% U    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。( I8 i( L* c! q6 o3 e
( h. p9 j2 Q( M$ k5 V
    du:查询文件或文件夹的磁盘使用空间
. Y- j/ H* U7 ~3 x. [1 x, U  L7 w) m. [0 i1 l6 z, e
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
3 K0 n5 A& x4 \, `0 d" f2 U5 N
4 S7 K& {4 E  C7 b    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。) k! @1 d& I2 f% J9 ^1 z9 R
; \0 `( B. ^, N; Z. l5 t
以下是代码片段:
- ^/ l7 s4 ?0 s! @, S2 Y. [6 y0 a" ?1 b* ^2 k8 z
[root@bsso yayu]# du -h --max-depth=1 work/testing
- C. x1 U) o6 O+ X# t: c27M     work/testing/logs
* w0 t+ E9 b* J0 l6 h$ g# n35M     work/testing6 U9 b: g2 {9 X; a

0 C8 T7 v$ a5 C  d6 q[root@bsso yayu]# du -h --max-depth=1 work/testing/*( e+ o0 ^& o8 W
8.0K    work/testing/func.php! Q6 J/ C; f& F
27M     work/testing/logs) p- @  H; ^; k" S. P3 a  S
8.1M    work/testing/nohup.out
4 u4 Y7 C% m+ d0 m3 n2 B. h8.0K    work/testing/testing_c.php
1 c% Y/ f: J; N2 y! \12K     work/testing/testing_func_reg.php8 |" P  K& ~) N. f* @( G7 [
8.0K    work/testing/testing_get.php' a# Y5 s2 [6 W" w" Y! |
8.0K    work/testing/testing_g.php
* l% C3 y8 j% y; E3 a1 Z# Z+ [8.0K    work/testing/var.php
! w' e- |6 ^9 P& @* h0 J; M$ X5 E6 Q5 c
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
8 G* i, k( _9 F$ `& n" y% a27M     work/testing/logs/
+ I) B. s% V2 P
5 Z; S, n+ j5 Z0 t[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
6 N" A+ p8 Q8 K( F  x1 t  Z24K     work/testing/logs/errdate.log_show.log
+ v5 Q+ g, b  n8.0K    work/testing/logs/pertime_show.log$ b* F' T7 [3 K# z! ]3 A
27M     work/testing/logs/show.log
0 \  N# }% ~) K+ W4 A/ L9 V( n& @! W! g7 I, W# W' V
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-5-3 09:34 , Processed in 0.080535 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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