找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13368|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
* U2 E' ^+ v( o$ B0 T, w1 P, N2 _5 V
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
& |% j$ X  A) [# C, |& G    du可以查看文件及文件夹的大小。) e6 \' r$ l+ w# r+ p
# x8 L1 i8 [2 G, B/ f. m$ N1 H* U
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。& H7 a! S8 k5 k, i2 {

- d7 D" G+ N/ C) Q7 @  下面分别简要介绍
. p2 s' o$ [) R
0 C$ e2 |% M3 {, B) P6 j' s$ b    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
2 O2 r( c# _* p7 R% N: U( J
6 ?. @" {  c4 `/ ]  p: I7 F0 F" m以下是代码片段:8 Z' g) \# [9 k& l0 P0 [

3 X" Q, d! g" s[yayug@yayu ~]$ df -h, Y, e( O0 u' k8 t
Filesystem            Size  Used Avail Use% Mounted on1 d9 ~- {: P% p2 H
/dev/sda1             3.9G  300M  3.4G   8% /; I6 n- V( f8 t- K  n
/dev/sda7             100G  188M   95G   1% /data0
$ Z0 F! G" u! M8 E( [( O* C/dev/sdb1             133G   80G   47G  64% /data1& d4 k6 z. |& J8 G6 n: m# U
/dev/sda6             7.8G  218M  7.2G   3% /var# I) o5 i; j  H
/dev/sda5             7.8G  166M  7.2G   3% /tmp6 E6 b0 O  V" i" X# ^
/dev/sda3             9.7G  2.5G  6.8G  27% /usr
# Z7 O5 z& |$ k8 O8 ~" Mtmpfs                 2.0G     0  2.0G   0% /dev/shm
5 u; I' B: B1 q  u( Y  Y  R2 W" R9 p; W' ?; y; Q. P+ E
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
6 \& i* D/ e5 L$ q9 e+ N  {! Q1 N: e: {! |) r9 Y) B1 e' k% p# b- K
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
/ b& X/ D) X9 G! U# s; m3 x- R
" L( C2 k- Y! a3 u" n; |& @    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。4 Z( D# F! P/ x8 O
) F) _# o7 Q9 O& ?$ }' Y
    du:查询文件或文件夹的磁盘使用空间3 s2 a3 `+ Q% k; O: l7 S5 \
1 m0 T5 ^4 R0 d$ h! |  V
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
( d  R0 }) A: F
5 w' {' Q; b( I    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
( d3 z* e- }1 k9 M/ [
, R/ Q8 M" z! w- i6 |2 i6 `4 }以下是代码片段:
! f0 W" `( S+ C8 \! e. \9 h* D; e% B7 T8 d; J$ N
[root@bsso yayu]# du -h --max-depth=1 work/testing
/ a8 l4 c( [) M3 k! N27M     work/testing/logs
  K/ x$ E$ q+ x8 _# `35M     work/testing
, Y, b( L8 R6 S% X) i
# O3 h7 M; @; p6 @5 `[root@bsso yayu]# du -h --max-depth=1 work/testing/*
7 v4 L7 a) O0 H& |" D8 D4 W8.0K    work/testing/func.php
, D7 `, x& l+ A& L27M     work/testing/logs  ~: @- g! K" x4 r
8.1M    work/testing/nohup.out
( v: i: S5 H/ z5 o9 D8.0K    work/testing/testing_c.php
$ i0 Z1 `+ Y, T4 M! B12K     work/testing/testing_func_reg.php; Y/ ^9 W' a, ~
8.0K    work/testing/testing_get.php+ i* \5 e5 j# e; }9 A/ ~# [1 }: {6 Z
8.0K    work/testing/testing_g.php9 T3 x. L- C! ?) a
8.0K    work/testing/var.php
# y9 i3 S; k( |1 Q/ w' t/ I2 W* F. b+ q. f4 p  a, i2 C& O
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs// ?6 t8 k9 w" H5 z2 J
27M     work/testing/logs/8 h: _" _4 {& G2 O

% Z: q( P3 `$ V+ M: J( q[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*1 G  f' O% O* F; S- e* ]2 j
24K     work/testing/logs/errdate.log_show.log/ E# L/ P- u/ Z
8.0K    work/testing/logs/pertime_show.log
3 E7 o" r' T+ c4 a27M     work/testing/logs/show.log% E: S: v% u( _+ B' m% }  a
2 b5 D! l  y; p% O6 D8 w' |
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-5-25 09:59 , Processed in 0.043298 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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