找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13606|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。0 k# I5 f1 s" Y  f
6 i/ R- G" O3 F, i1 Z& S
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
& r, y: v, F4 {    du可以查看文件及文件夹的大小。7 e- \5 G+ z  D1 j1 b6 }
. T2 E- L; l7 [) _( e
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。& z. X) O) _& j4 C2 A6 a2 A
% Y; U% W2 b( H2 J/ h1 \  L
  下面分别简要介绍2 V/ X1 i: w3 ^6 O' y8 Y' `" E
4 G; ~' A. J7 s. b  p
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:) o; A+ Q" n+ B8 |

" @6 s( S) D( ?/ A3 ~7 Y8 _以下是代码片段:( F) P6 P2 o+ Z$ h3 B8 A( R
4 x$ I' z  \8 L/ l4 q
[yayug@yayu ~]$ df -h
  Q& q9 Q2 a, Z" A! ~" {+ r$ RFilesystem            Size  Used Avail Use% Mounted on% y; i0 H( N" x0 t0 T
/dev/sda1             3.9G  300M  3.4G   8% /5 X& n1 K  b* N& t
/dev/sda7             100G  188M   95G   1% /data0% E, B! t# y4 \3 C, f+ \
/dev/sdb1             133G   80G   47G  64% /data1
4 \; ~" ]6 ^. b5 F  C/dev/sda6             7.8G  218M  7.2G   3% /var1 f  A2 S! w' {, e( n1 {
/dev/sda5             7.8G  166M  7.2G   3% /tmp
6 U- F, a3 q+ [& O- X/dev/sda3             9.7G  2.5G  6.8G  27% /usr2 A2 D, m8 V& H' N% A/ o
tmpfs                 2.0G     0  2.0G   0% /dev/shm+ {9 o& I& ^, ?& j* u

2 Z- ~/ m: H1 K( f 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
  l8 B9 `8 I! Z2 d$ ]' {! q% R9 P5 S& K6 Z% t) [- z& P# |
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。8 n, M$ t3 d: o* y5 h+ @

5 G" e+ E( {; _( `3 B* d: f: w    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。3 K2 ]# D0 a8 `; N2 A4 e

5 X" h- h! v/ {- `! L( R    du:查询文件或文件夹的磁盘使用空间
  E3 T& I9 F& Z; I
( b+ D7 Y$ r7 z. w4 f    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.* ?! C" N/ W- e! U. q* B& |; C
% [6 P+ \3 d! s. I0 o! c+ d7 m
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。8 s6 y( Z6 J% W3 _) s, S7 z

( z) ?* C& h: v( _& P4 \以下是代码片段:
% E- J6 F  B( o7 ^5 y& C* q" S* p; L4 h5 W
[root@bsso yayu]# du -h --max-depth=1 work/testing
( s- ~3 v! @1 Q( ]3 [% U2 k6 [27M     work/testing/logs
; e0 T1 h6 R, [6 P1 A: P7 F35M     work/testing
; y3 G4 `  c/ c+ ~* z  {" P% q" [
9 H* V' A  A- v( P: i0 M  @[root@bsso yayu]# du -h --max-depth=1 work/testing/*
0 z2 o& C, B; L1 h7 f6 }9 v  n! p8.0K    work/testing/func.php
+ S6 |* ?9 B& Q6 o3 i! n5 Y/ I3 {5 ]4 b27M     work/testing/logs
& X) _- H* L: l3 T. o6 o8.1M    work/testing/nohup.out
) y" ?" Q  T5 M8.0K    work/testing/testing_c.php7 P* L) T$ K. E/ v' a$ o
12K     work/testing/testing_func_reg.php
6 S" R, g! I" a  q. N6 D8 u8.0K    work/testing/testing_get.php
5 h" B2 e) j& |8 E0 R- [. z8.0K    work/testing/testing_g.php
& k, W$ {: W- c. x8.0K    work/testing/var.php1 N# ^' J3 ?! F2 v! `  R

; M5 o9 t' C4 ^- l& t[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/- e; c) d8 |2 }
27M     work/testing/logs/! c' |3 o6 L" j2 G' N( M

( v; ^* J# @2 n; s% W[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
3 a% g5 |) \( m+ @& N  t; G24K     work/testing/logs/errdate.log_show.log
+ U; s2 @4 L) Z: |1 a: B/ c' @8.0K    work/testing/logs/pertime_show.log
, `" p2 \8 {3 ^27M     work/testing/logs/show.log
( ]  X! f" J+ V1 A! A
8 Y4 ?( p# B  U" Y
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-6-20 14:50 , Processed in 0.054718 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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