找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14260|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。. o" [' s  T& Q
' y) x8 q* ?0 X$ y/ j# s
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
* l% f2 S/ g3 N3 U% U. w    du可以查看文件及文件夹的大小。2 s/ y0 z8 K; j5 |  z* ]; b
7 D# U2 q) Z: O7 u3 T5 R
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。. _8 Z* ]3 b/ k: J2 L

& c( p7 g8 L1 q, M* J  下面分别简要介绍1 I5 D8 q9 m, M, d. y) m
- o. Y: d% }/ h' a! o- Q2 A" t
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:' U5 r! k; i5 Z  W5 V

5 W$ y0 W( z+ W以下是代码片段:7 P0 B6 J- Z1 y5 j) C9 O
7 E( U8 X$ Y/ a& _+ t; W
[yayug@yayu ~]$ df -h4 O" w: _, E" e) G6 [3 b
Filesystem            Size  Used Avail Use% Mounted on/ @2 L$ J5 C: H1 @4 [: m; g+ N/ _6 `% c
/dev/sda1             3.9G  300M  3.4G   8% /
; B4 w' Q7 L+ g& W/dev/sda7             100G  188M   95G   1% /data0
' A* m; ~/ y8 c0 T) g2 J8 n8 c/dev/sdb1             133G   80G   47G  64% /data1
' d* r2 n+ f3 F0 s9 P- U: q/dev/sda6             7.8G  218M  7.2G   3% /var
' y7 [5 G7 J6 q) \/dev/sda5             7.8G  166M  7.2G   3% /tmp
5 ~8 |( O& C! J# y/dev/sda3             9.7G  2.5G  6.8G  27% /usr: {' E  z* g- F& B) s
tmpfs                 2.0G     0  2.0G   0% /dev/shm8 }' z' ~8 [+ P/ s! l& l* Z. j

' m/ z6 W% t! p- \2 b$ r8 e 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。. ?, S. ?1 J6 q8 f& c% {" X

4 Q; Z% b  w9 R# Q- \* u7 R    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
! o  E5 d, w# v: d5 B. ~; u' x( x( [1 y9 O& h; T
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。2 w, m5 _4 m5 m3 Q1 o) A) u

# N- {6 x  k8 T' ]: S( U    du:查询文件或文件夹的磁盘使用空间
6 o4 \: p1 h, s, ^
$ Q( \: [4 |2 ?" \1 ]    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
7 {( T  h- S: _% i+ k  S" e: K- k, K8 V* }5 v
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
6 Z5 Q* w: W: Y9 E$ {1 `% f# I" {, J9 i
以下是代码片段:
# {% b9 }6 F% }% N5 M0 a
; g) L$ g! \5 U" v2 O' j' F[root@bsso yayu]# du -h --max-depth=1 work/testing
* Y+ c  o5 B- w3 r27M     work/testing/logs' A. |) j/ z  s# v# \/ A; V
35M     work/testing) L+ ^2 y/ g8 w. K; K. j
- i5 j- J* W( o* m' O5 ~
[root@bsso yayu]# du -h --max-depth=1 work/testing/*
+ K* \9 `! ^1 ~% A4 X# a' F8.0K    work/testing/func.php
0 [( j" Q, o4 b6 d5 S4 U* L8 o4 k8 Y1 c27M     work/testing/logs
0 [/ ~+ m1 o, I0 g- m8 u; u3 M8.1M    work/testing/nohup.out
" K9 w4 R- A; j; c5 ^2 F1 C. x8.0K    work/testing/testing_c.php3 F: w; ?, K  g$ r: `) h' ^' W
12K     work/testing/testing_func_reg.php
7 J/ X$ G) O* w4 Q6 g$ \8.0K    work/testing/testing_get.php4 P3 ]  a! j9 L# c
8.0K    work/testing/testing_g.php
# q$ u7 G2 S$ }. ^8.0K    work/testing/var.php6 o. E! Q/ S! X1 D" V
( d, Y1 x- ^8 l1 a0 r
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
" l! m+ C  U) z1 r. y27M     work/testing/logs/5 F1 ^2 k% N$ `6 p8 L/ v+ H

$ ?! H4 H2 Z5 r7 P/ F[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*- i; g. D& Q, q6 z
24K     work/testing/logs/errdate.log_show.log
/ O+ N- e$ ?0 o, g1 \1 |8.0K    work/testing/logs/pertime_show.log
/ @$ D' i- ]7 S0 ]/ p4 d27M     work/testing/logs/show.log4 M6 }: t! ]* q" ~+ L9 a/ C

2 j8 @8 m8 y( T
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-8-30 02:54 , Processed in 0.072938 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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