找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14570|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
/ _2 ~: E2 k: ^0 Y& E0 C  ^! z% A/ i4 j$ {2 X% ^8 M
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
% l1 \5 d1 a& C3 r; _    du可以查看文件及文件夹的大小。
& J6 ~& V( p  H- c& V( d$ e5 |7 l: L0 r
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。$ m- h( x* q  L. y: D
8 y7 b2 y3 Z& L8 \( T1 m; r# R
  下面分别简要介绍
; m/ l/ z- y4 ]/ }" h
7 Q- Y6 s* U7 ]' @( U6 m/ y    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:8 B0 {3 @' H7 o6 j  {

- E: [, E1 r3 r以下是代码片段:
2 a* z8 Y# d% ]: W+ t
+ N! j6 V1 H) V: w$ [( K+ X[yayug@yayu ~]$ df -h
/ `, |2 B7 N$ qFilesystem            Size  Used Avail Use% Mounted on
% ~# `" t  V- ^/dev/sda1             3.9G  300M  3.4G   8% /
. T4 C4 c) u: `2 m- `, c/dev/sda7             100G  188M   95G   1% /data0& F0 o2 s& v" z& x* R& q. E
/dev/sdb1             133G   80G   47G  64% /data1
5 Z3 |& c, r) K) ]/dev/sda6             7.8G  218M  7.2G   3% /var# O& [7 O6 ]/ s) @
/dev/sda5             7.8G  166M  7.2G   3% /tmp
  ^5 W7 F8 C" B; G7 m9 {/dev/sda3             9.7G  2.5G  6.8G  27% /usr, c" [7 v7 x/ F% m, C  K5 R
tmpfs                 2.0G     0  2.0G   0% /dev/shm
; E. Z) ^6 e+ f1 k3 K; E% ~- V0 [6 x% z* M; n. T& u2 E
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。1 ^+ K# Y/ {, w- ]' @1 g

, C3 M) b- r3 b. I) F    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。' k+ t9 _6 H9 g/ R6 c4 ]4 D- N- b

# J% m# K6 r. ~8 ^' d4 i    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。  E/ h& ~( {! s% m+ G7 ?0 L
3 _8 T1 {( f! W+ t: T
    du:查询文件或文件夹的磁盘使用空间9 n* |# Y' D4 o& i  `6 B

3 {6 d, ]/ C' j( ?    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.& d. ^; t, u; _4 g% C5 o
, C) f" b$ K( ^6 l1 t" A. R* l( `
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
0 ]5 k( l# ^+ m2 ]' H9 x( H2 h# U* ]7 x& R- m9 y
以下是代码片段:0 j, \; Q( x+ W& W* p

) E2 ~" ]4 Z: V. c% S7 `[root@bsso yayu]# du -h --max-depth=1 work/testing9 K, t" S3 V8 ?& Z- T9 T; p
27M     work/testing/logs, p- d/ M" a2 [: h- s2 h+ S
35M     work/testing
( m) z' A# d* l  g7 b
" `) i. X, ?# L# V$ B[root@bsso yayu]# du -h --max-depth=1 work/testing/*2 U' [+ Y! L) s$ y% k6 l
8.0K    work/testing/func.php2 F/ U+ H& r# ?& b
27M     work/testing/logs8 r( E+ x1 j* n0 ^
8.1M    work/testing/nohup.out4 i) B: n, U8 c1 Y
8.0K    work/testing/testing_c.php
; N% {& @1 _2 Y1 e5 V12K     work/testing/testing_func_reg.php6 R, R: k. P/ n
8.0K    work/testing/testing_get.php& H; O2 e1 ]4 s
8.0K    work/testing/testing_g.php
9 o  z# ?3 S. n9 l: _, V* o4 P; s8.0K    work/testing/var.php
! q2 L; x. j' }, Z4 _; q7 w: z) r! u6 [5 [
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
; s  q5 i% Y+ `$ M8 L27M     work/testing/logs/: D1 ~7 B7 H: T/ x

5 T7 j5 h# b, p' ^. R[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
* ~9 O. I- ^- ~: I8 z24K     work/testing/logs/errdate.log_show.log  D: L, Q5 D$ F: E
8.0K    work/testing/logs/pertime_show.log& Z9 h. {! |/ i0 R  r5 E4 p  G
27M     work/testing/logs/show.log. L" O! e. }$ L0 q- k

% w4 ~9 ]7 e4 Y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-10-4 06:48 , Processed in 0.063612 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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