找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14884|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。* u2 N5 u  X( m" ~6 U. `5 J6 M2 a7 a
+ T' n* i! S- S# Q* W
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。0 H* E3 t/ o3 |! @4 `; s* N) }
    du可以查看文件及文件夹的大小。' m) F# D  X, ~8 c
. P7 J, \9 I1 r9 N# ~
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
. ^' N4 P/ |/ b7 j- W
3 O* {# m# r. R! h  下面分别简要介绍
% D5 v' W. T4 I) v( l1 j
' N5 u& c* d1 W# A    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
, h/ B) H! l+ b! k9 m* p+ Z9 O5 g  V1 i) R
以下是代码片段:
' s2 ~* A% }3 z0 Y9 r1 i, ~% U9 C) k( y: v3 c( z7 O
[yayug@yayu ~]$ df -h
0 Z% ?  ~" v4 e- v) X; AFilesystem            Size  Used Avail Use% Mounted on6 a  M- X0 \4 k+ [+ ]
/dev/sda1             3.9G  300M  3.4G   8% /2 j, ]+ s3 }: |! e# O* F
/dev/sda7             100G  188M   95G   1% /data0, o# u8 y, i5 L2 p& y* N8 V
/dev/sdb1             133G   80G   47G  64% /data1
% r7 {' X  V7 k, f8 C/dev/sda6             7.8G  218M  7.2G   3% /var* Z# u) q8 q' ]' X
/dev/sda5             7.8G  166M  7.2G   3% /tmp
& L6 ]  [0 Y% E/ N9 [! m/dev/sda3             9.7G  2.5G  6.8G  27% /usr( F: T! c3 p/ M$ e' v
tmpfs                 2.0G     0  2.0G   0% /dev/shm
! J+ [8 N3 u3 P/ S
/ y/ ^/ w# P& ]& | 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。5 O" v6 e5 z/ t, i" z
; k; ~" r5 w3 w* |* {
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。5 ~- b# k+ \9 V4 s* S+ `
- r, E6 [8 i) C  U0 F
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。# ]4 c: \1 \+ d8 J
2 g1 Z8 H1 J# e0 e6 Z; I5 f+ M8 L
    du:查询文件或文件夹的磁盘使用空间
( V, R# w$ m7 P9 i, _# Q
2 S3 @8 \# g8 I. X+ E0 @8 O  }6 _    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.% X+ q+ f1 Z' y6 a5 M* k" X- ^/ x
( P! l7 x: r0 L+ u0 s; H
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
& R& `6 ]/ |' }) k8 I# E9 ]' @" w7 o3 O2 _' n) N6 U: e. Y/ @' |
以下是代码片段:5 ?- A* i) U( |4 w) u7 f

- i  Q! L4 [& }4 t5 k% z[root@bsso yayu]# du -h --max-depth=1 work/testing0 D8 n; y6 s# M' D; F7 }; q0 g
27M     work/testing/logs1 y0 |' D2 o3 U* v3 x" Q' ]
35M     work/testing
8 M6 ]0 i' r4 {/ {, I3 B2 W
+ b2 ]! J4 C9 M' E9 m2 x[root@bsso yayu]# du -h --max-depth=1 work/testing/*" z% n+ R/ i7 U$ B
8.0K    work/testing/func.php& M( k! j4 U8 A% V1 C
27M     work/testing/logs, s7 m& k+ j6 z6 |
8.1M    work/testing/nohup.out
# k; [: i+ ?: o8 O; n. L8.0K    work/testing/testing_c.php
5 p6 y* X! [6 \" D12K     work/testing/testing_func_reg.php
) x3 G+ y* k9 i$ ]- [, {" e/ j# q8.0K    work/testing/testing_get.php9 @) t% ]# W" F/ Z) R
8.0K    work/testing/testing_g.php  y6 C: E4 _' S, V/ M3 I  v
8.0K    work/testing/var.php
5 p/ X- b3 r; E9 M5 P- S- U# d$ }2 v! K% h, c3 w7 O8 H' Q1 p/ d8 o) i
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
/ q8 L  v: M8 D4 N( ^+ {* c27M     work/testing/logs/
1 _* P$ f* D: j. L) @  c* D$ J, y0 e& c/ u- @3 r' \6 H
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/** A8 d+ p6 a# B; w* l& l; m: x; I+ R
24K     work/testing/logs/errdate.log_show.log# p% v- b: j: Z8 N6 q% f# i
8.0K    work/testing/logs/pertime_show.log
4 ], V9 C9 l% U27M     work/testing/logs/show.log- j+ b0 a) A# {, }; S8 X+ o9 W+ R
% J6 q& e8 x; O  a4 d* P( s
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-11-15 09:12 , Processed in 0.061490 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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