找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13009|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。, c6 L# h2 r8 J- I/ H

6 p5 M' F& p/ T' j: I1 a- s5 f    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
0 I& m8 y" ^7 ?0 w- Z    du可以查看文件及文件夹的大小。
8 t% X$ L8 E8 Q8 ^$ L3 w2 f4 K2 U; L0 F2 v: C8 z
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。: V, F+ i" U: R( a% s7 h

( U& k& u: m) I. j* t! m  下面分别简要介绍5 ^$ Q: B; ]8 X
# L- E& w( M) b9 I+ r; \
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:6 q2 [5 ], i& @
# c0 }, w. t- B' o' [' E
以下是代码片段:
! `+ i. }* u6 Z5 e( H  q: Z
) _4 ~  ~. v% S$ u[yayug@yayu ~]$ df -h
0 [% u* M4 o  V1 AFilesystem            Size  Used Avail Use% Mounted on- M4 Y  V5 p# [- G0 x. @8 Q  O
/dev/sda1             3.9G  300M  3.4G   8% /
* C  x  O/ S5 c" W0 k' q- i/dev/sda7             100G  188M   95G   1% /data0
" `+ g; }! R- Z1 B  h8 h0 p7 R/dev/sdb1             133G   80G   47G  64% /data1: M# ?( }4 y1 i" s/ N  ~, [. C% Z9 D
/dev/sda6             7.8G  218M  7.2G   3% /var! Q9 W7 F  A. l2 b
/dev/sda5             7.8G  166M  7.2G   3% /tmp) q1 ?7 ^, L. F" L, k1 D# Y; L
/dev/sda3             9.7G  2.5G  6.8G  27% /usr# w& D, y2 w' ^- N0 X+ j
tmpfs                 2.0G     0  2.0G   0% /dev/shm
, S$ _! {8 F6 ?$ p, f2 D( C/ A( F2 e
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。/ b& w. p+ y3 G

1 x9 O4 N1 g0 R! ?    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
9 N( G5 k: D0 _6 u5 \' o  f
% A1 y5 B- L& L$ \* S7 h    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
$ r2 E# v0 s/ N9 ]  j3 F/ J
1 X1 v1 b7 [0 f, @  P3 L    du:查询文件或文件夹的磁盘使用空间) n% y8 u3 ?( h/ A& q% y
% C1 H6 U' I, J7 O
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.$ `5 W' @  h9 e& T& N  X

/ ?/ q3 i( @& x5 H8 {- U3 [% [    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
" P8 A5 b8 f# d- w& A" o' h, r4 ?: z* s' ~" j2 v/ t
以下是代码片段:0 g5 J0 Q! ?0 h
3 K  U' _  }! N) @% l2 t
[root@bsso yayu]# du -h --max-depth=1 work/testing
! S- J, U  p. S' k$ ?: i& l27M     work/testing/logs
% }2 i! k+ q" l% h' L0 }35M     work/testing' O5 w  S" h# ^
: m( H7 E/ q* b, H& o4 ^3 V" r
[root@bsso yayu]# du -h --max-depth=1 work/testing/*$ Y1 \9 g2 I. w5 {$ ^
8.0K    work/testing/func.php
! k" g' C; N9 }5 V27M     work/testing/logs
% a( E9 z1 o! |8 p  T; z& ]! G8.1M    work/testing/nohup.out
0 }5 E8 U- @' ]+ ^8 K8.0K    work/testing/testing_c.php
! G7 ?3 G7 h8 \, Q, G12K     work/testing/testing_func_reg.php
3 Y# R1 W4 d! x$ H# z# b8.0K    work/testing/testing_get.php
4 G9 r* k5 q: N& P0 W' L8.0K    work/testing/testing_g.php/ \: @5 a" m" S8 a' j9 W
8.0K    work/testing/var.php8 z9 ~3 G# h. g
9 G4 C# E7 V0 y' W# J; B, f. k
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
. ]' D$ f. u' ?" y$ [" h5 _! W27M     work/testing/logs/5 c% Q3 a3 M0 @  b+ C& R
* O3 @0 [& v' a3 q0 d8 E; L1 M
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
! ?) d! |5 a- N) a4 v1 D24K     work/testing/logs/errdate.log_show.log
* g, f/ F% h3 c0 ?& ~) e8.0K    work/testing/logs/pertime_show.log
0 ?. n. a4 y/ y' k; X& W3 }27M     work/testing/logs/show.log
5 S7 M. Y9 M/ k
  m" p" n6 e2 \0 \" D0 y: u6 r
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-19 23:34 , Processed in 0.069017 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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