找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14723|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
' d( C* @4 k/ l7 {) @0 k; v+ o; p1 n7 z6 W, k( y
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
( V1 t1 A. ?% I    du可以查看文件及文件夹的大小。
1 o, I  ^; `! x* T8 m- c; X9 s  o0 _, _! J: p3 U; f
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。* t3 M8 r2 |5 g+ X9 Q  P# ~6 ~; Q

* D; ^; [: i! Q" c1 w  下面分别简要介绍6 U) U) K9 X1 M$ S: o

/ i* M& O8 j+ E& c    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
  p4 h1 q2 c! a" X8 j- _) k2 ]6 m+ U7 d5 X) z" w
以下是代码片段:  o7 a) U2 Z6 q4 ~9 c

5 _# p% B7 y: g" x[yayug@yayu ~]$ df -h1 |# e) X  p& @% D9 Z
Filesystem            Size  Used Avail Use% Mounted on
9 {: N% ~2 P8 {& j, M& Y! g0 Q/dev/sda1             3.9G  300M  3.4G   8% /, y8 J7 q7 {# f2 M! E! B
/dev/sda7             100G  188M   95G   1% /data0
, s: c, n6 j. X- q1 Q, K/dev/sdb1             133G   80G   47G  64% /data1
+ ^# I9 b1 u! m/dev/sda6             7.8G  218M  7.2G   3% /var: @: z  p# N: b' q3 l0 W7 h
/dev/sda5             7.8G  166M  7.2G   3% /tmp; @+ o( ]6 \: t% \" V# J
/dev/sda3             9.7G  2.5G  6.8G  27% /usr; [4 B& r, w( t" J
tmpfs                 2.0G     0  2.0G   0% /dev/shm" d6 D. M: n7 N# ~  D. M

0 {- G% [% `" D( a 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
1 l- `* I) b7 o5 e- ?
; F0 x+ O1 o: x    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
2 z& J& v; \8 A7 D' [$ {/ k+ A+ p# S+ V$ p
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
* l, G& q; K5 P* S0 H" Q- {5 j* e; @* o1 u/ o
    du:查询文件或文件夹的磁盘使用空间
7 Y6 i' z0 X9 ]* U
4 z. p* [# w& m2 O    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.. C9 j. k2 F  W, o9 s' [0 R

6 ]5 r7 _, b. e# P    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。/ c& k4 ~# F+ X  K) i
2 U8 q* g9 ~0 D3 \4 I
以下是代码片段:
* B, b/ ?+ t( |/ q9 ]6 \7 W+ c) J( r! T0 T# d$ a0 N# K
[root@bsso yayu]# du -h --max-depth=1 work/testing
% R4 R: E& s) T9 [4 I; k( v  S8 r27M     work/testing/logs
2 r) K- V; P5 |35M     work/testing
! T$ [9 R5 D8 U$ x. s- W% g, M) y. [2 M; ^6 o
[root@bsso yayu]# du -h --max-depth=1 work/testing/*
! h( m+ g5 D8 T/ n9 [* ?8.0K    work/testing/func.php& G" c9 b$ f; y7 y
27M     work/testing/logs
$ s. y! Z7 m  q# g; c8.1M    work/testing/nohup.out
& b  M# d' N9 n2 K# c$ n& Q8.0K    work/testing/testing_c.php  B1 V  Z8 X$ u+ z; {
12K     work/testing/testing_func_reg.php
) d" V/ V' `, m: k, Q* O6 N8.0K    work/testing/testing_get.php
1 B7 G4 I* U: ]- Z4 D3 o: O/ H8.0K    work/testing/testing_g.php
. b8 ^6 Q, j6 r5 n1 ^/ R8.0K    work/testing/var.php( y' m+ a6 ~( x! V# Q9 U, J
0 D: A+ y' }! A" u
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/( P  e  C, p0 n5 \' |# \
27M     work/testing/logs/
0 c  K$ u% o6 s2 r* D$ c( a1 |
. m  H  J1 }, S[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
  N8 X! t7 k( M5 r24K     work/testing/logs/errdate.log_show.log
' l2 ^* C' E3 q3 A8.0K    work/testing/logs/pertime_show.log+ A6 J) J* }6 K5 E( l8 q+ X
27M     work/testing/logs/show.log
' f6 o3 b' |5 i+ ?7 F% R3 Q% E" }' n% a0 |- Y6 ?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-10-23 01:07 , Processed in 0.086972 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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