找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11712|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。! B5 ^$ f8 ^# q+ d7 w
+ O  {! S, ?; w
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
1 i+ L2 [6 }! V. [5 c9 [' F    du可以查看文件及文件夹的大小。
3 o* r$ C% E1 b$ j# \  @7 T
1 U/ k0 y! E. `; v    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。8 z) Q5 L* N- H6 ^

& W2 M9 I4 {/ m6 w  下面分别简要介绍3 W# Y0 Y5 K& l* P3 ?7 @% \. m

" |! ~( ?5 ~9 u4 e, K( G2 G1 u    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:4 \( b* ^; G# R- C1 Y0 R

! ~6 b7 f6 z) o) B以下是代码片段:) o# q) i: M2 G+ D$ V
& p* L# _1 V5 G' E
[yayug@yayu ~]$ df -h
7 b9 q, S1 H% c4 hFilesystem            Size  Used Avail Use% Mounted on, F9 H, h% S$ c$ V6 E' j0 H; e
/dev/sda1             3.9G  300M  3.4G   8% /
2 V& ~/ Y* t% i8 h) h% V0 z/dev/sda7             100G  188M   95G   1% /data0
! @" Z& g+ u2 T- Z  u' w/dev/sdb1             133G   80G   47G  64% /data1
! G; Z, ~" r5 x1 i, `/dev/sda6             7.8G  218M  7.2G   3% /var8 ]- \4 @. ~: C) g7 o6 |8 A; m
/dev/sda5             7.8G  166M  7.2G   3% /tmp1 \9 u9 d: @; A; t- g% S! p' t$ W
/dev/sda3             9.7G  2.5G  6.8G  27% /usr
7 G$ w9 j7 `9 s! Y" H3 d8 gtmpfs                 2.0G     0  2.0G   0% /dev/shm# S1 [7 z& @) H( ~$ W9 L, h2 q5 v
% O' V" p: |' |
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
- p$ J5 Z0 V2 z7 m+ H' G4 ]& s1 q4 T
1 A( x1 d0 ]! _% K3 c. V3 a    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。" B* d1 s/ |( E

* X) h3 @  y# J" I4 ?- ^; Q/ h+ M    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
8 N0 c1 P- _' \! N, L! O* ^: j& V+ h; m+ u, v4 y" _# L
    du:查询文件或文件夹的磁盘使用空间
6 ~/ k' V8 o% g6 R  O; P) s/ X
) m* Z4 K, i! i    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.1 A# h7 Z& y  t0 _, G! y
: O5 @4 i, C+ o9 z; {. f
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。7 F# \* A+ Q; P2 q: [

0 y/ x4 N- x9 H+ m% [以下是代码片段:
# g  o4 e6 Q( ^7 r6 o5 @
6 D) r! V) O* k  J) B9 q4 ~6 A[root@bsso yayu]# du -h --max-depth=1 work/testing
& s( j6 i' a3 m27M     work/testing/logs
1 l# h/ m2 U$ ~8 F35M     work/testing+ J1 f9 M- F; i6 I, u

: [: w7 Q8 S6 m8 ~. c4 i' z5 `[root@bsso yayu]# du -h --max-depth=1 work/testing/*/ X( _% k9 d. q+ J
8.0K    work/testing/func.php) b( T* N7 R8 V* x; H4 r
27M     work/testing/logs6 v( M  Y2 s9 W5 x8 ]# M# L' X
8.1M    work/testing/nohup.out
( n. s! K4 y6 p# E1 w  o8.0K    work/testing/testing_c.php
& Y7 E& o# d2 d4 |+ u12K     work/testing/testing_func_reg.php
* ]5 k7 _" d0 o8.0K    work/testing/testing_get.php* T# c" w% J. r4 V* z0 y
8.0K    work/testing/testing_g.php" U( Y+ ~; J' `2 ~- Q1 d% F8 d
8.0K    work/testing/var.php
5 u: \5 _! K4 g3 v3 d
5 l% H" G+ o2 m[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
: `/ I: o3 z. G7 z9 p" p27M     work/testing/logs/+ Z  i# f* {  w. q  ~4 {

" L% ~9 L: P; z) |0 D% [[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*, D! w  v. z6 r- \' k" x2 X9 p! W+ n
24K     work/testing/logs/errdate.log_show.log
" {2 i. ^# @& }- A7 e8.0K    work/testing/logs/pertime_show.log+ K, _( Q; ]  b( Z8 Q
27M     work/testing/logs/show.log
$ x! e0 o5 R+ x  _4 v( Z" t; o; X8 Z
6 L, p5 ~+ u. B  F1 x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-17 07:43 , Processed in 0.071993 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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