找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12903|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
% E' ?: g, x; h& Y7 P" u" O7 i6 q4 }* I! f' H. P
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。1 N9 u, H) D  x& i1 [0 M
    du可以查看文件及文件夹的大小。
2 ^- b8 V0 U- r8 ~6 c5 b4 B" `* e1 R$ F9 Y
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
) m  F6 J6 V* W6 p& h2 g2 X4 ~$ B4 W, U: H
  下面分别简要介绍. Q0 s& ]( @5 K% Y9 V& q8 r( r) @

4 ~( U- n% _5 W1 X8 x) R    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:5 Z* f0 |8 ?7 e" g* e$ @

5 G8 |% B  M& C* v以下是代码片段:
6 ~2 z, M6 r6 u, y5 A* N( b1 h0 N1 l, `
[yayug@yayu ~]$ df -h) q4 _  q% ^9 T4 Q% u4 J
Filesystem            Size  Used Avail Use% Mounted on
( `# }+ c# ~% ~6 t/dev/sda1             3.9G  300M  3.4G   8% /
# E5 l$ r; w8 K" `4 r  p) H6 V/dev/sda7             100G  188M   95G   1% /data0  `2 C- o2 r4 _, B) f
/dev/sdb1             133G   80G   47G  64% /data1
) _) ^3 T# N9 c- V; X: i9 {, q/dev/sda6             7.8G  218M  7.2G   3% /var
2 i/ j1 K# N; K3 m9 h# J4 L, Y4 y/dev/sda5             7.8G  166M  7.2G   3% /tmp
- _8 T' C' V* Q' h/dev/sda3             9.7G  2.5G  6.8G  27% /usr
+ m; V8 L! F  W& @tmpfs                 2.0G     0  2.0G   0% /dev/shm
* ?# t2 Q' a6 D8 P6 {0 V1 N# W
5 @; e$ w: O! T# a: P9 R 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
2 c& X3 B# s# z* Q/ L" j7 _7 F( U" W4 N" N' H4 T: p
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
* s; ~" @4 h6 z( K, k* B; U; @, ], Q# S( U* D' N
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
7 g' h3 x) R) r* _( ^) i* F! U! [, Z1 o; w; M, P* d
    du:查询文件或文件夹的磁盘使用空间
9 X# [6 O' @! @/ j$ o# |  L" f8 Z% F0 |  m7 A  A2 D
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.5 ?: A3 Q( E5 V, H! W, X4 s( H

" Z' ?( x- J9 n6 ?7 P    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
+ w: t; F% W! [' t. i7 j* [0 r/ N, j$ U
以下是代码片段:
+ U( l! r5 e0 V- G0 {& o" ^2 K  j7 s  ^* Q
[root@bsso yayu]# du -h --max-depth=1 work/testing
" {9 s  x: Z4 y6 @% t/ J( {- k, @) r27M     work/testing/logs9 ~3 l9 u4 t9 N! n) x9 N
35M     work/testing
! t0 u, r& P8 |, H# p& h+ q
& x  X8 h; ]. T) N  X[root@bsso yayu]# du -h --max-depth=1 work/testing/*% m) K% V: U1 t; `
8.0K    work/testing/func.php
4 y( d% n1 u5 ^+ @) u5 l) T1 k27M     work/testing/logs5 l3 ?  J1 x0 V. N3 P
8.1M    work/testing/nohup.out% r: R$ X7 b0 c% u9 l: P" Y+ d0 e
8.0K    work/testing/testing_c.php
( i" M$ B/ C! F) k* l/ u12K     work/testing/testing_func_reg.php. _5 L4 D- Y; T7 l
8.0K    work/testing/testing_get.php
5 t. E8 l7 O( }$ X: j7 [. N8.0K    work/testing/testing_g.php; m9 V" u# j( K6 t' ?+ C9 Y6 i
8.0K    work/testing/var.php
% ?' L, l& `( R2 x- y, f; G$ A
( ^5 [( o$ b8 H5 S" `[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
9 A$ Y1 z* x8 @/ \9 t  U! o27M     work/testing/logs/8 d" d" c) A3 o; x
1 O/ N. M7 D+ L3 C
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
3 }7 I1 x, R  K8 N; V$ S1 _/ Z24K     work/testing/logs/errdate.log_show.log
* s- W6 i2 I1 D2 t9 m7 C7 T* Z8.0K    work/testing/logs/pertime_show.log
6 C) @! h, m! }* n. R# e2 A: i5 s27M     work/testing/logs/show.log# ?7 f$ I( s. s. u& L3 \0 R' W. D

1 _: K+ G" y  X! }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-8 12:56 , Processed in 0.073878 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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