找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12868|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。) W3 A4 o( a/ n' d1 [! y8 l9 O

* }& G# o" y* }1 h4 L/ N+ H    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。. }" _" e4 u* t5 Q. w* c
    du可以查看文件及文件夹的大小。
' t5 @) S! |. L3 M! @9 D9 w. n* Z  y4 j/ o. p  R! Y/ c/ {! W2 C# ^% v
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。- E* k2 ~9 I/ W; d+ i# F9 W6 l% j
( p$ o  y# M( ?' v( M
  下面分别简要介绍( I9 L0 a  |4 Y1 Q0 i( ^% X

; U+ s. s8 p" D5 F    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
, G7 j5 B1 g; Q) Q4 W, o. P8 L4 Q$ u( s  }& T. S8 g& @/ f: U
以下是代码片段:; M# _- S; p/ n* d. j+ q
: ?$ p* y# N7 V$ c- k
[yayug@yayu ~]$ df -h( K7 i4 X  P& c
Filesystem            Size  Used Avail Use% Mounted on
/ d$ f0 R, c0 u7 ^% k% f. |/dev/sda1             3.9G  300M  3.4G   8% /
( {1 `0 D& m4 S$ c" x7 F/dev/sda7             100G  188M   95G   1% /data01 @7 a* @- |5 h# E! o
/dev/sdb1             133G   80G   47G  64% /data1
7 A/ v2 g  R% k3 c& v5 w- N, z/dev/sda6             7.8G  218M  7.2G   3% /var3 Q5 e/ m8 L  p
/dev/sda5             7.8G  166M  7.2G   3% /tmp1 i9 j: a" h: i1 p  ~! n1 _) h
/dev/sda3             9.7G  2.5G  6.8G  27% /usr
* X/ x. J8 e5 d1 O& L5 b& Z1 qtmpfs                 2.0G     0  2.0G   0% /dev/shm
+ z. m7 m7 C8 G0 R8 N* p/ t7 ~+ h. r( s5 x9 ]& y
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。2 l- E3 t& P* P# l7 {
, h. j: S1 h4 J) P' y; o
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
2 X4 N$ p) ^* S6 Y/ l9 N- Z7 h0 ^2 M* g) J  r- J" w
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。2 {- q+ i+ ]$ n1 p: _
6 m8 F* B5 Y$ V6 v, j( R4 @
    du:查询文件或文件夹的磁盘使用空间8 p0 X: S% u5 U6 u

. n; ~( n  i+ C8 L" l6 R3 u! t7 M    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
8 Y9 [, g7 l( O7 R3 a
; d+ a% z: n6 ~8 f% |    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
5 u2 G7 j" Z- A! Z' r: B2 o
* L+ c, Q+ n, }4 @以下是代码片段:
" i/ }4 J% p' k( B
! V0 B$ N- b7 N+ G[root@bsso yayu]# du -h --max-depth=1 work/testing7 a3 e( v/ x4 D! ]
27M     work/testing/logs
+ o4 B) E5 K( y4 D8 M* k# A; s( g0 ]3 U4 ]35M     work/testing6 n/ t4 T. F7 h% N" x/ N8 k

' \" n+ D" m, [% I[root@bsso yayu]# du -h --max-depth=1 work/testing/*
" |* `+ Y# O3 N4 [0 e6 x8.0K    work/testing/func.php
* p7 U% s0 c* J4 @+ D27M     work/testing/logs
& c3 l1 h" C5 W" c( c' @( J  J8.1M    work/testing/nohup.out% i  W  L& A% F# t1 W
8.0K    work/testing/testing_c.php& ?6 r: @/ |  x- l' t% a
12K     work/testing/testing_func_reg.php3 h) O. S1 f! z  F. K* l
8.0K    work/testing/testing_get.php
' {: @: b; D0 z6 p8.0K    work/testing/testing_g.php3 X& @6 ^  s3 _  w2 q
8.0K    work/testing/var.php
+ I; Q3 [# H& Z6 v9 p
! ~7 V8 n7 B# x4 D[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/' m- c5 w+ ~6 _
27M     work/testing/logs/
: a" G1 g8 ]8 X. K( y/ M) k
; x/ p0 K% V2 I- D[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
+ X6 Z  l2 ~  q4 i8 |24K     work/testing/logs/errdate.log_show.log; s9 u  E1 K* a2 n% i" c
8.0K    work/testing/logs/pertime_show.log
( `' H5 s5 w! r2 a  M5 [/ F27M     work/testing/logs/show.log5 y8 A0 G! Y/ D: L! |' e5 L! t% C6 c

- X+ t/ ~9 J" l3 _* {# Q
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-5 22:59 , Processed in 0.073797 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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