找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11347|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。/ ^# x/ x8 I  K/ D) H$ K3 m9 r/ [

; e0 a+ ]2 c! C+ v) l5 z    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
' _0 ^: n# ^7 ^+ h    du可以查看文件及文件夹的大小。1 o8 g# n5 S9 n) g
" n6 E* J1 ]- s" U# p% T; ^
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。  l+ _) q2 h8 ~, `- `$ o/ y

' z1 u. H' s8 O" y  D% a  下面分别简要介绍
' a8 @. W5 [" C% j! H9 j$ L
' k7 [* G( _# [4 w$ H! R    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:6 j- M" G) j! Z
  C$ j7 V# x5 u1 [) O$ j
以下是代码片段:
  n; X+ a1 ]- B1 V# h8 d" C1 T! e0 T1 }2 ]+ X0 m
[yayug@yayu ~]$ df -h1 h9 H; N. a) X, N( O' h
Filesystem            Size  Used Avail Use% Mounted on4 T' s7 p( \/ S" v& j& a
/dev/sda1             3.9G  300M  3.4G   8% /  T( X% d2 ?# [8 H8 `
/dev/sda7             100G  188M   95G   1% /data0; y; G" n- @& J  x0 M
/dev/sdb1             133G   80G   47G  64% /data1
- ]; T* j. P1 }* D- L" f1 }5 U/dev/sda6             7.8G  218M  7.2G   3% /var
1 A% ^5 n7 n0 |- U& T; y6 u8 |7 l/dev/sda5             7.8G  166M  7.2G   3% /tmp
& N; `* X& Z2 `' u/ ~; U/dev/sda3             9.7G  2.5G  6.8G  27% /usr; a% Y8 ]6 D* S. ^9 H
tmpfs                 2.0G     0  2.0G   0% /dev/shm( b- d( q) |$ B" T/ S0 e
8 q" t$ Y2 Y" @( [# [6 ]
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。! ~9 n$ M3 g0 s. n

9 c8 G; q  Q/ n    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。& u: Z/ d1 g# t# l! d3 q, D% H

: g+ H+ L7 m! m$ i7 y- a    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
& C0 R9 }  _$ ^9 [7 g8 g7 g& M8 n( m1 J+ w  o0 `
    du:查询文件或文件夹的磁盘使用空间) b' V5 ]- h) p; P* H( E

+ _! @. @8 j4 s: w3 ^% d& n+ p    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.* U' \4 s9 `3 E
  e; M. o5 l2 g! d% l, R
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
7 }* @1 d5 I+ d# p* }
7 q+ F# M8 @% g' A. b$ s以下是代码片段:
% v( l9 ^8 y; B' |$ E: z
* x" V4 `- }  x1 S: r+ }[root@bsso yayu]# du -h --max-depth=1 work/testing
- f! u( i0 b) p, S27M     work/testing/logs% S4 V$ X+ m7 i7 k- P
35M     work/testing; a8 i4 n# Z! g( |" \
) h- M. T- a) U7 ]
[root@bsso yayu]# du -h --max-depth=1 work/testing/*3 s) V7 \- K( ~6 r: w
8.0K    work/testing/func.php  r- J" h+ f/ h# V
27M     work/testing/logs
& i  Y% c3 s% ^/ J8.1M    work/testing/nohup.out+ D$ ?7 N6 _' P
8.0K    work/testing/testing_c.php
  q" R2 S5 s% ?" Y; V  T12K     work/testing/testing_func_reg.php9 `% k% e" Q1 E
8.0K    work/testing/testing_get.php
1 I1 e! ~0 L4 @+ ^5 e9 R8.0K    work/testing/testing_g.php2 P( ^+ L% J( q3 t) K" Q1 s2 u0 a
8.0K    work/testing/var.php; ^0 |& I$ _. h6 T8 Z

) j7 l6 s/ z9 w# x" A2 v- P[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/* L' T$ H( c+ r& y
27M     work/testing/logs/. q5 l1 k" \. y
& j1 l% D: U" V2 g. ]; |
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
: y! b4 T7 ]; E5 p! }24K     work/testing/logs/errdate.log_show.log
( I  _3 g6 H. D! L" {* ]8.0K    work/testing/logs/pertime_show.log, l/ \+ G7 k: L! N( w5 G' r/ G
27M     work/testing/logs/show.log
# {. S# W- {4 J/ E" ^% n% @- h+ V2 s! E4 Z+ u, n
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-9-15 11:03 , Processed in 0.097982 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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