找回密码
 立即注册
查看: 7283|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
  |8 b' W* b5 O9 n
- ^: O. i! Z4 Z$ P! I    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。/ D' ]/ Q0 ?3 c0 F& A% P
    du可以查看文件及文件夹的大小。
7 L' O0 n0 u$ R, w9 x7 B7 d3 N) P" E* b( V6 t3 x
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。: o/ Y5 A, e/ \0 [' N

* X5 |0 L# [* z4 r+ r  下面分别简要介绍# X1 \+ }. e, O4 J

2 x- Q' P! X8 ?; S1 |" v3 \    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
7 }! b- }" [8 O+ \
9 B2 V9 Q$ {6 I$ r以下是代码片段:
) [. G. \  W& H3 F4 C; K& t" J! x0 P$ A* |' z9 x
[yayug@yayu ~]$ df -h
6 t8 W3 l; F* n  i% O  rFilesystem            Size  Used Avail Use% Mounted on
: n6 ]8 F4 c- @8 t, v: m/dev/sda1             3.9G  300M  3.4G   8% /, F. O! Y; ^, @
/dev/sda7             100G  188M   95G   1% /data0
' `2 @  B' F5 g8 y4 ]& j& |/dev/sdb1             133G   80G   47G  64% /data13 r; L! Q  N) h# v
/dev/sda6             7.8G  218M  7.2G   3% /var& ^1 ?/ L$ q9 N9 O, k! \8 R
/dev/sda5             7.8G  166M  7.2G   3% /tmp
# X/ a* ^8 k: `  R  q/dev/sda3             9.7G  2.5G  6.8G  27% /usr
4 B* v- {8 V. i% \3 z) g' Ftmpfs                 2.0G     0  2.0G   0% /dev/shm
! L5 i0 E& k( f* K- l. q; L" `8 U$ {! n% k( m, r( m
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。; d: i0 N8 m/ x& @' N1 M' n

4 l6 T, H$ o+ }+ N    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
) L9 |' H8 u1 {/ i& M1 }2 U- V. i0 \5 D8 r1 [9 P
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
4 m6 d: R* r, c+ l' c4 P" V) \! M; r+ ?) ?7 u
    du:查询文件或文件夹的磁盘使用空间# h2 [' `& b% P& e* _6 A- Y

0 L# q0 g  Q6 d( K2 B1 q1 N    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
+ z( Y% ?" g1 q& ~7 M$ t6 Y! d0 U9 V; s0 d: X
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。! n; _# V. @' Z# H2 ~
) b; k) X  Y: U7 e
以下是代码片段:
9 K5 _2 z. a" p! H0 k4 z3 p3 t0 x; ~8 u# j0 [
[root@bsso yayu]# du -h --max-depth=1 work/testing
' ?- ^+ M2 J/ g' o" |: l% y8 L27M     work/testing/logs
5 o7 C' K; s- |, Q! T+ Z! ?2 _35M     work/testing& j; R, S' J# R  D
$ k! o0 J$ ], |2 H5 ~
[root@bsso yayu]# du -h --max-depth=1 work/testing/*
+ ?; f& [, i8 u; k; h% @5 N8.0K    work/testing/func.php+ w( W" y; Z* r! ~4 H
27M     work/testing/logs& R( ?+ O5 x9 E2 {
8.1M    work/testing/nohup.out1 l% g/ p1 _3 G4 k: Z7 F% A  `
8.0K    work/testing/testing_c.php' S- l  R& K- |0 P/ ^' |
12K     work/testing/testing_func_reg.php; g9 X7 b, Z8 G" n
8.0K    work/testing/testing_get.php
5 t0 m: ^* M' E& H8.0K    work/testing/testing_g.php2 a+ _/ r3 Y2 y. u/ [0 Q
8.0K    work/testing/var.php
( F" T. d7 A* U9 k% R. e
( `' Z0 Q/ {& l9 ?% P2 W[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
) K/ S9 ~0 R' f6 E27M     work/testing/logs// s# N3 R% {- r5 X: a5 ~9 q
0 k* |, A' p% i9 D4 Z  N: U
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
/ p# g3 z" t3 ]2 x: `! ^+ d24K     work/testing/logs/errdate.log_show.log
0 }+ _' B, ?4 m, J8.0K    work/testing/logs/pertime_show.log2 c5 W5 s; |6 H! Y  ^
27M     work/testing/logs/show.log
( |. I7 \0 E& H) \2 e+ Q0 r0 ^) X/ x2 F9 A2 \* Q$ k# P8 z& G
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-4-20 12:30 , Processed in 0.081674 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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