找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13891|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
7 r/ J, T9 G0 m# U9 x3 b; \9 F& Z9 e$ h% d% t0 ~4 c
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
2 y; A+ d, r4 V0 C; O    du可以查看文件及文件夹的大小。
* s3 u0 k- |! _3 A7 ^$ p/ X( c/ |* b. z
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。( \: |! |# t. P6 r; E0 D
  o7 f* l& F6 _9 t/ U! p
  下面分别简要介绍
# G2 y. O9 y3 e2 @1 i5 e/ G+ Y7 }& v+ |, u: }
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:# e# y- J, \. \8 r2 n5 e! t" F

* p0 o% P, G' w  V- j2 |' g以下是代码片段:! V8 z; P" _7 s5 i4 y1 n! p4 Y
  b+ J2 I' p6 I) ^- Y3 L! }7 t. ]
[yayug@yayu ~]$ df -h
3 `0 d( G' E6 R$ vFilesystem            Size  Used Avail Use% Mounted on4 V7 z% A$ H2 q( Z8 S8 G
/dev/sda1             3.9G  300M  3.4G   8% /% N* P) _; [( ?
/dev/sda7             100G  188M   95G   1% /data04 a( M* [! Z, _( B" b5 x4 W% `
/dev/sdb1             133G   80G   47G  64% /data1
* o) w, I9 T9 ^, y( e/dev/sda6             7.8G  218M  7.2G   3% /var- q. p  n% w. j  Q9 C" \
/dev/sda5             7.8G  166M  7.2G   3% /tmp
. |( N( d2 L5 E+ L2 @, Z- X4 k8 E$ w/dev/sda3             9.7G  2.5G  6.8G  27% /usr6 c4 Y5 J8 N) H" e7 w; o' t
tmpfs                 2.0G     0  2.0G   0% /dev/shm7 q- O+ n% h, |% m  G% Z! b

9 ^& U% R2 ^1 ?7 p# I 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。( s6 r4 r- y0 d# Q2 R8 I& D

) u2 y! J( s+ Y1 o. @    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。& x! h' W5 h, T- V
& m6 {* k  n- q# v/ x& D
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
1 \" k: h2 w* l, h; N0 W
: M7 L  ]$ ]! W9 X    du:查询文件或文件夹的磁盘使用空间
- C) \$ R; j5 k/ E
$ o9 j3 k+ H. D; ?' N    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.7 g% ?$ F. }* A- }1 R" D+ v& c7 e

9 q3 y" }1 T3 p6 [; ~8 p  \; G( y    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
4 d* V+ M* b6 s1 t1 m2 H0 D% w1 Z4 r- X
以下是代码片段:  R5 l+ Q- K* h9 G# _2 q( q
" F. z" }; G. ^, u& l; m1 i
[root@bsso yayu]# du -h --max-depth=1 work/testing. T. O/ h; ^# C5 M4 W6 B
27M     work/testing/logs0 e( `% w, P8 ~# F  o
35M     work/testing
" t2 n3 |- T4 R; {! z6 ?- L
! ~: S, j: A6 ?% s! b[root@bsso yayu]# du -h --max-depth=1 work/testing/*' k  {& q" m- T
8.0K    work/testing/func.php8 m: A# a6 w2 [/ N6 Z4 Y
27M     work/testing/logs
2 q2 v+ B/ A0 s# R% a  i! M8.1M    work/testing/nohup.out- U  f: u5 a1 B% R. H: E; W
8.0K    work/testing/testing_c.php
6 _4 C2 q4 I3 W6 J  E. {6 R' Q12K     work/testing/testing_func_reg.php5 o  t4 \  x5 I3 b& ^  X6 H
8.0K    work/testing/testing_get.php4 V3 [, I- b6 p2 P  I1 A
8.0K    work/testing/testing_g.php+ x0 I( q' ?9 f0 u
8.0K    work/testing/var.php7 A/ |- j$ L$ m, x- a
* @) X* x0 r4 n( h2 m  q# \
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
& n2 x* i" m) F5 k# J: |8 r: N- p27M     work/testing/logs/
9 N' W+ N6 K$ \' V0 _7 X- K, ]' L! }% C
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
2 Z# U4 v) p) Y* q; y5 Z24K     work/testing/logs/errdate.log_show.log% F( u1 @# B- e- Z( y# V
8.0K    work/testing/logs/pertime_show.log- h8 {- ?- I2 Y
27M     work/testing/logs/show.log2 A7 N; i8 O. d( w, M
$ X: V, a3 `) {! X: A
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-7-18 17:14 , Processed in 0.097440 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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