找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13990|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。
" \: k, k5 q( i1 E' x/ @2 T1 P' O% \; G5 C& }
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
: m' v( N5 l: M0 i    du可以查看文件及文件夹的大小。
  t8 Z0 O2 U4 F) x+ z6 e3 y3 u5 C$ a2 D. O4 N- v
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
9 w8 T$ P) @2 g1 N+ D% F1 p5 Z# \5 I$ u4 u. z2 y7 z
  下面分别简要介绍
  p/ C. X6 q1 S" y0 D8 y8 b* J) t" N+ S: G  L9 O# {
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
( Y- r2 R1 F/ h/ k/ d* |/ W4 w6 m' {  u
以下是代码片段:% R* |8 p" u, B3 l3 L$ s

( C0 n+ g, N' m8 k8 J; c- v[yayug@yayu ~]$ df -h+ ~- H- G; M5 \7 f! ^4 m5 r
Filesystem            Size  Used Avail Use% Mounted on4 P+ z$ J& k# |; }" p
/dev/sda1             3.9G  300M  3.4G   8% /
" [6 |0 S# S5 \, W. Y/dev/sda7             100G  188M   95G   1% /data0% X: B. d4 W( |
/dev/sdb1             133G   80G   47G  64% /data1! i/ M3 f& a  I% U0 s6 N. B
/dev/sda6             7.8G  218M  7.2G   3% /var5 s; v+ n8 y! l: ]/ H3 h/ u
/dev/sda5             7.8G  166M  7.2G   3% /tmp8 ^) F) m4 Z1 J2 N) P
/dev/sda3             9.7G  2.5G  6.8G  27% /usr7 Y% t, [- C$ ?9 ?- b; n
tmpfs                 2.0G     0  2.0G   0% /dev/shm* {( t8 f1 p5 P1 v! N% t' ^! |
8 l+ r9 K- p4 A1 _) G0 F) R2 b) U& K
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。8 l5 E' W# r/ T% O1 ^/ j$ {; N

$ f/ w. \9 y' }5 i! v    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
8 ]' t' A$ l, {$ O
& ~2 m. ~* r0 d6 ^+ u5 V4 N    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。; J% X& d# t$ v% j. O0 |

0 }. _7 T% Y6 H  y, D- I    du:查询文件或文件夹的磁盘使用空间0 d* g. I3 _3 V0 z2 j/ `
- k: ]5 }; Q: g1 P8 d
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
: f; F4 s& q" \6 g1 g) w9 ]0 o# o' ~# d) h! }
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。3 P. M0 i  j2 c1 N6 q( K

0 Z0 D3 w: u: p2 S2 c5 K以下是代码片段:- H7 \& {( Y- c4 I

( h, e. J$ h* p$ x2 j7 m, o[root@bsso yayu]# du -h --max-depth=1 work/testing" b" I! G) |% _  t9 k( ?0 X
27M     work/testing/logs
- x, l8 _& N  H4 s35M     work/testing
* I% ]% Z4 S8 M0 r
1 |: ^4 O+ h5 v) H5 E9 K[root@bsso yayu]# du -h --max-depth=1 work/testing/*1 U% R9 K$ X. b) F
8.0K    work/testing/func.php9 R) K2 M' x# w. c' H5 e
27M     work/testing/logs, @  {: q: Q' s$ _1 @" `
8.1M    work/testing/nohup.out2 q0 a% b  c' t! J
8.0K    work/testing/testing_c.php3 y+ S* H. t& m  j6 k, j6 N
12K     work/testing/testing_func_reg.php
, Y4 o  A3 `' N" [$ t8.0K    work/testing/testing_get.php
% N' w3 M! e" \" `8.0K    work/testing/testing_g.php$ I: |1 V& u% o7 y* [
8.0K    work/testing/var.php
0 Y% ^0 P! c! R% E
# e5 C+ P) M2 \* R[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
. |7 W4 F0 `4 Y4 I. t27M     work/testing/logs// i9 P9 ~, \; U) `. T
4 S) C( [% O. r4 f5 E* s  A6 A; j. ?
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*  j! ^& a0 Z: h( F
24K     work/testing/logs/errdate.log_show.log
4 G: h9 m/ h2 v8 n  h8.0K    work/testing/logs/pertime_show.log/ }5 Z7 e* R, a1 o% r" F: j
27M     work/testing/logs/show.log
; G5 v9 B' c2 ]3 ?
, Y0 V6 t1 a9 H3 n! f; W# f
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-8-2 01:49 , Processed in 0.102555 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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