找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11631|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
5 ^" f' X; Z' S- K. N% u4 U8 D
8 D; z5 u- i( \% b: _/ V  j0 a    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
* k1 o  s) ?: r, l    du可以查看文件及文件夹的大小。$ `% u+ ~1 e7 z7 `' x, p( T

- H/ B3 n6 `% X$ Q    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。4 f$ B6 g* S9 n1 G

& _- Z; g2 U: f. s/ Z/ P8 m5 {( T- ~  下面分别简要介绍
$ N. r. K# u3 U: X  y3 S4 e) |+ [& `
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
' ]! `4 U+ r3 J: |, I) X: y/ R" n% u5 C  ?4 |
以下是代码片段:
1 R, M8 k, z# r5 w; K% c" w7 z- A  L1 y. v) o: c  Q
[yayug@yayu ~]$ df -h
/ S1 x' W" z; h; E3 I/ F; ZFilesystem            Size  Used Avail Use% Mounted on
! t* ~8 _1 {( D/dev/sda1             3.9G  300M  3.4G   8% /. X( `1 h' A. C( p& g2 ?
/dev/sda7             100G  188M   95G   1% /data0, x( F& n; b: a8 K3 c* Y
/dev/sdb1             133G   80G   47G  64% /data1$ q4 }( X& D1 B) m4 M. `
/dev/sda6             7.8G  218M  7.2G   3% /var9 P% v  L, F7 H% \- V
/dev/sda5             7.8G  166M  7.2G   3% /tmp1 L) y/ o+ |  K+ ?* z  d1 R
/dev/sda3             9.7G  2.5G  6.8G  27% /usr' V) \$ K2 Z; ~) i( @/ l
tmpfs                 2.0G     0  2.0G   0% /dev/shm8 p9 Z' ^6 Z9 h3 |+ q1 `
' r: O! I+ C/ W
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
+ N8 B( v4 {4 g7 u# w. u- E1 M2 B( K6 ?! v- C1 k
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。$ @# N% g& {+ s9 C, l  T5 c0 W

: `6 {+ T* g/ J- V7 m) {9 O" a    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
2 D# x: u/ r5 M% Q
( l/ u% S" v/ @    du:查询文件或文件夹的磁盘使用空间, i+ \7 J- q3 ^4 v3 M0 Q
! I6 p/ @) f& z0 l( `- c3 R
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.8 f2 t" ~/ q) `* W9 q$ }
0 J. e  N( R3 k  m( A: Y" T
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
* ^1 k1 K% @7 _8 S/ L6 T
4 x' ^" A& D+ f( v以下是代码片段:8 m/ V0 k' [( B$ q9 O

' |; y0 j$ g6 Q& V[root@bsso yayu]# du -h --max-depth=1 work/testing
( [5 M6 Q7 {- L8 J. e* |8 F27M     work/testing/logs
8 S# {8 C1 R. V, @35M     work/testing
) \# ~6 z; D9 B5 ~7 ^  F
% J+ n7 w$ j9 a" ~% }  Z6 ][root@bsso yayu]# du -h --max-depth=1 work/testing/*+ s0 [! z, G  p, b/ b
8.0K    work/testing/func.php
! K2 Y/ ?/ |* R( n% Z& Q3 c27M     work/testing/logs
! t$ f6 e1 v" x* E# ?0 @7 ~: {0 T* Z' `8.1M    work/testing/nohup.out4 D  ^% J% z* {" l" {6 ^- L
8.0K    work/testing/testing_c.php
8 z/ F3 d6 T% l. a12K     work/testing/testing_func_reg.php1 {! E: _2 z. O5 C
8.0K    work/testing/testing_get.php
& l7 R) F4 a9 m; f5 j, r# f8.0K    work/testing/testing_g.php
3 T( i) B9 K2 z9 E% }8.0K    work/testing/var.php
8 b0 k% H7 B1 p1 p' K: m4 L
# w% p$ t3 r+ B$ b[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
4 J! {1 M  Z  W: W27M     work/testing/logs/$ C/ t( P+ s7 d3 z# R: p
; e6 \$ b! h! m% V: p' B% l
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/** O% k. `$ X% O
24K     work/testing/logs/errdate.log_show.log
3 H  i# I& B$ J# p" Q  L8.0K    work/testing/logs/pertime_show.log! O: e% o0 w' i8 ]8 J
27M     work/testing/logs/show.log
3 N6 R: C8 b1 O: |' Z; X
' P% \# ^% Z: f5 T! J! j9 J
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-4 21:02 , Processed in 0.077296 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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