找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13662|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
6 u9 \9 K7 g/ U! {5 u4 y" h$ ]
5 U6 X+ L& P' g    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。6 X, K8 H/ K1 Y' U- a
    du可以查看文件及文件夹的大小。: B$ \2 v3 b# E) \5 m9 K1 K

+ r/ o# [" D0 {; P% d% f' s4 \, q0 T    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
! J8 q6 O7 a; L5 C9 X& \& t) x/ m* L* C  b
  下面分别简要介绍2 Q- J6 n- `" a, p+ j# ?. q/ w

( u: `$ B3 Z: Q    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
' Y5 b" ^+ U1 ?+ X- Y) t: A+ S' ^  e/ o9 D9 K0 g0 M; m1 v
以下是代码片段:' y) Q3 m  q2 S2 T) ~  ]8 a5 {. J
2 h* U. U7 s# Y$ B2 j
[yayug@yayu ~]$ df -h
2 Q( x$ h8 d4 [+ g- Z- K9 m5 C% {Filesystem            Size  Used Avail Use% Mounted on- _! P; F# v) q- F
/dev/sda1             3.9G  300M  3.4G   8% // ]9 }- p0 E/ q  y! w+ s
/dev/sda7             100G  188M   95G   1% /data09 p, \6 F  g' a5 ?9 \) P5 R
/dev/sdb1             133G   80G   47G  64% /data19 ?% s* [6 u" D( F
/dev/sda6             7.8G  218M  7.2G   3% /var6 s4 n# h$ L9 y0 e; d
/dev/sda5             7.8G  166M  7.2G   3% /tmp0 Y1 s# u* V. I& i( E1 G& X2 b, y1 ]. l# e
/dev/sda3             9.7G  2.5G  6.8G  27% /usr
+ J) ?' }# w9 jtmpfs                 2.0G     0  2.0G   0% /dev/shm2 ^$ o/ v7 }  ]8 j5 a

# g% g- ?" @* C! R 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
- L; V$ u' |( u% G7 Z: Q- c% y* ]# d+ B5 m7 z3 Z5 W' Y
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
4 K! Y) X! g2 q. P4 D# s% F& J' X4 }- R/ [% L4 X/ y8 M
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
! J% |0 Z) s. {. X5 f( y
* F4 @5 z4 S, |! T# j% D    du:查询文件或文件夹的磁盘使用空间
, Y- z+ ]. k( ^  u
- l# E0 |- [; Z  S8 i/ e2 M    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.: r" B; t% A$ l5 Y+ q" \

" }+ z% w9 F$ l8 Q# k* n    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
: u9 c+ u7 K- |* M8 q
7 h* {4 e( A% `$ ]1 H% n; @以下是代码片段:1 h9 r! K' y! f1 n* W
- {& k, H$ A, W6 {2 h1 x: }/ t
[root@bsso yayu]# du -h --max-depth=1 work/testing, _4 K8 T% T* t1 m8 G. k9 I) H0 r
27M     work/testing/logs
3 n2 E/ @2 U! r; Q6 P5 X" d# Q35M     work/testing: ^" i+ o9 s! |: O
$ g: c  k" E8 A. X5 m
[root@bsso yayu]# du -h --max-depth=1 work/testing/*3 `& x1 T8 Y: {, K0 X' }) C% H2 h' _
8.0K    work/testing/func.php' a" g+ I" h/ i. d; ?
27M     work/testing/logs
* W8 S/ {% C& r$ s2 V" e8.1M    work/testing/nohup.out/ a( ~$ J. @. o" y% H* A: v% E
8.0K    work/testing/testing_c.php& t& t6 S, m, P+ {4 s' n$ j% s
12K     work/testing/testing_func_reg.php
; z: I! F/ {3 b. F8.0K    work/testing/testing_get.php4 ~* H& [1 W- U3 G/ s
8.0K    work/testing/testing_g.php
: b0 z$ B' h+ B0 n8.0K    work/testing/var.php. u/ B, d3 O: \9 K

- v: a5 B6 H! i2 @( s; X[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/0 f$ |2 z* p/ i
27M     work/testing/logs/& l" S5 q1 V% D8 y/ \" V
) K. ]. {: r7 W* s* b
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
. E1 b. q8 r, z24K     work/testing/logs/errdate.log_show.log* w. H. C! N" n( Y" `
8.0K    work/testing/logs/pertime_show.log- B+ r& D$ {/ h/ E6 I( g1 i0 n
27M     work/testing/logs/show.log+ c/ U2 _$ H' c  }
' d5 o! {  H( j- u6 M% n
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-6-25 09:53 , Processed in 0.082158 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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