找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13487|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。+ \7 T9 @  n% a. q" M# U" N3 ?

9 o5 P: g+ G+ O" m7 s1 M    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。: u# ^% A8 [# B/ S- u7 f
    du可以查看文件及文件夹的大小。! F- n6 a' b$ h

: r' P0 L& w/ b0 F! J2 }    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
  b  t& Y+ E! J( _/ w2 K0 F( p0 m
  下面分别简要介绍. a9 W- K$ e! U8 b

+ L5 d& r3 ^; D/ K! T+ j5 @    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
- k/ `- y5 T/ ]  E* i
, K3 f) N% O9 `  G; E+ d( U" |以下是代码片段:
# S8 f5 W+ w9 u) j7 X* }
+ u6 `% ?3 n! c2 _9 T6 @; z[yayug@yayu ~]$ df -h! r0 n9 B- c6 r- g7 |/ g' A
Filesystem            Size  Used Avail Use% Mounted on
( e7 T: c+ N0 K; j' @- Y: W/dev/sda1             3.9G  300M  3.4G   8% /- l1 `0 v8 Y% d3 @" R6 c
/dev/sda7             100G  188M   95G   1% /data01 G  j2 P! N8 {* ~' A0 \
/dev/sdb1             133G   80G   47G  64% /data1
. [. v" s" M6 t% c$ k( l" c/dev/sda6             7.8G  218M  7.2G   3% /var
9 d/ y! [+ W/ G$ a; c/ s  L/dev/sda5             7.8G  166M  7.2G   3% /tmp/ |! s+ a: \) f( |) G1 T
/dev/sda3             9.7G  2.5G  6.8G  27% /usr% \! W: n' k" d8 }% l) i
tmpfs                 2.0G     0  2.0G   0% /dev/shm
8 W5 \  j+ w" W: F* Y9 z
* `: m% Y5 O( `! G$ \ 参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。" S" }/ S0 V$ [

% L( i' B& i7 L7 J7 n) O+ ?0 `    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
. j" S4 e- j! J' L" h# |7 [5 i5 }% [3 V+ a" V9 T) p/ D
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
4 c) a7 e- M7 b' w
% L% Z& t1 \9 P, n    du:查询文件或文件夹的磁盘使用空间6 F. T' F+ {0 N# \

( u" t3 S3 e) I1 M; b* L: ?4 W    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
7 T- ^& ~, O% @+ B, ~) F8 G8 Y8 I3 q$ P( S# A3 Q
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。0 |4 G( t; M5 `6 K

7 F7 |- j& x$ M7 K9 \+ e& r以下是代码片段:  T8 I- ~' m" `* |5 Y
" Y1 Z6 z& u$ S1 y$ }0 n
[root@bsso yayu]# du -h --max-depth=1 work/testing( A3 L2 q/ q6 W  M$ a5 I
27M     work/testing/logs
+ [' }7 P; {5 {35M     work/testing/ X6 {0 `! K1 z, x; F

9 _( J4 p! K; J, ^& v1 E/ K, @$ z[root@bsso yayu]# du -h --max-depth=1 work/testing/*7 Z( L+ W  G, x6 t" E5 G, \
8.0K    work/testing/func.php
( A3 I. S/ ]( |# q4 B5 f4 x" M27M     work/testing/logs2 f7 j5 c" S8 G" R; P
8.1M    work/testing/nohup.out
1 m( [; {1 }) v0 ?1 t( a8.0K    work/testing/testing_c.php
  g/ R! z. i+ z3 H5 b12K     work/testing/testing_func_reg.php# R% D0 T# Y3 \; Y% F$ e: [
8.0K    work/testing/testing_get.php
9 i) @; @* A+ U( X8.0K    work/testing/testing_g.php
* v2 {6 T. N# W% W8.0K    work/testing/var.php
) t7 V% i  p: _+ u4 ?# x8 R' @  s9 w
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/$ U2 |$ ?2 H1 B& g3 G* r) w. `
27M     work/testing/logs/
# s1 y  A! G/ F0 a5 ?, ]# o; s, a. w) w& z9 ?1 d
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*$ r# z5 h7 @1 v- r$ w! c$ s3 e
24K     work/testing/logs/errdate.log_show.log4 B2 _& t# O  s9 |- W
8.0K    work/testing/logs/pertime_show.log
8 j8 {: m/ t# a( t* F) L27M     work/testing/logs/show.log
) ^/ Z* M6 d+ {$ R# e6 S0 Y
" B3 o  G. |* a' x8 R
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-6-7 04:14 , Processed in 0.059680 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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