找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13989|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
* Y8 f, B. O, u& Q
$ Z- ?) s1 G8 l. ?8 S    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
: _) [+ f; ~$ K* S    du可以查看文件及文件夹的大小。
' `  G; e4 S0 E! T( b: {( H
2 C# j) J# p& p- t9 Y    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
  I9 C" r2 x/ ]! I, c
: X& c! q6 s! i6 ?- ]4 q' _6 @  下面分别简要介绍
& M0 y4 q( {* s$ v! R+ Q4 `0 K# s1 K: }* A; I; r% D
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:+ n- ^" r4 y5 }2 h# Q9 I6 I; e' Y
+ y& c: z$ h5 b& n4 b( c
以下是代码片段:9 s# e* B2 @3 i% s+ d1 `* ]

) h' ~) D8 E! k* v[yayug@yayu ~]$ df -h
( |% q% J. N4 ~% y$ N; dFilesystem            Size  Used Avail Use% Mounted on7 g' s* `6 m. E
/dev/sda1             3.9G  300M  3.4G   8% /
. O# r2 v' [+ o  G& F/dev/sda7             100G  188M   95G   1% /data0# W  _0 w2 k2 ^, g9 c
/dev/sdb1             133G   80G   47G  64% /data19 T; f9 \, B5 Z4 P% i1 ^7 K
/dev/sda6             7.8G  218M  7.2G   3% /var
# O2 \7 b+ R  @8 @: K9 s! b) l/dev/sda5             7.8G  166M  7.2G   3% /tmp) E9 }- }5 P) O& P. V
/dev/sda3             9.7G  2.5G  6.8G  27% /usr( ~( I+ L& ]9 f5 D! b5 k" R
tmpfs                 2.0G     0  2.0G   0% /dev/shm
) m7 H1 r; F! w& C$ h. Y2 X- x0 H8 Q0 @) U& \  o
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
$ l- B0 S5 K, K' m
+ r: V! |+ y& r2 Z    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。" ?* T, Z/ H5 T' K* l

8 ]8 A; r# {) ~7 z6 B    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。6 z2 [9 w3 n3 N+ C

; K7 Z  s/ f. R; f2 I" }    du:查询文件或文件夹的磁盘使用空间% u1 l8 y" Y7 I- ~% N) E
. U$ y  G- G/ x  l% A0 s  p
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.2 q/ N$ j5 c- B
' p9 d& ]0 Y. g/ {1 N
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。  d& D+ k* W$ }7 m* `9 X  c

7 l  ^+ N% u: E( R0 u; L以下是代码片段:$ p8 [$ V7 R( `# D

' q: `# G8 L6 V5 ^8 P7 y; q( Y7 s[root@bsso yayu]# du -h --max-depth=1 work/testing
+ k5 S$ \4 j& W. N27M     work/testing/logs
4 Z( p  z3 D2 {2 g; d35M     work/testing
3 s2 H+ g# E' @- M+ y
7 W. {# P/ }$ L+ K7 R1 m[root@bsso yayu]# du -h --max-depth=1 work/testing/*& T! l: w( O! E0 h! A1 J
8.0K    work/testing/func.php5 j" C! y8 \# E* D
27M     work/testing/logs
5 f. g$ D& s2 o; ]& }8.1M    work/testing/nohup.out
3 q' Q( p, a+ |# Z4 ?5 x+ a  M" y4 a" Y8.0K    work/testing/testing_c.php& m; a8 ?! L* M' z
12K     work/testing/testing_func_reg.php
. a! j4 m# L/ E& t, u3 c$ e9 U8.0K    work/testing/testing_get.php8 ]5 v4 ]# l3 c1 k
8.0K    work/testing/testing_g.php
0 E" i# }' q# Q) ~3 j9 ^8.0K    work/testing/var.php7 [( D, B% b0 R  ~9 D% S9 D3 G# m
1 {6 |: G# `) y. F1 o
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/) Y9 `. T% C* `+ ~
27M     work/testing/logs/5 W; M( s; H: m5 ?
/ O8 _- m1 j' z9 _2 t
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
. u: h* L) H8 C3 `8 f+ {- a24K     work/testing/logs/errdate.log_show.log0 E* d7 D8 f; Y" r
8.0K    work/testing/logs/pertime_show.log
' I3 \9 N& Z% j6 ~27M     work/testing/logs/show.log' X3 Z6 ~) A( w; Z

1 Q+ A/ }! k7 k- B+ \- u& \% T9 _
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-8-1 22:45 , Processed in 0.645420 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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