找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11507|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。" |" t1 K4 \$ t# z+ t* U5 H9 z* s

) }* N# r3 B( q/ x" |2 Q3 `    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
; M: L1 Z/ A( w1 \9 U. O+ P+ c2 p    du可以查看文件及文件夹的大小。7 c/ w# E. G3 V/ [5 r
5 _- h6 y. \, ~! T. g
    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。) y, M6 X3 f% q; [/ A& \

; Q2 n) ^/ o* s9 J3 X  下面分别简要介绍  ~1 d0 W. z- b+ v# I

8 m3 V  C1 D& E2 j- {2 E    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:0 ^# R1 o7 Z" r% H8 f  s& i. X
, M2 Q% j+ {2 }/ x8 H
以下是代码片段:$ X" G% y( x9 ~) G3 o

  u2 T2 i2 x  [: @[yayug@yayu ~]$ df -h0 m0 i. u% S# X
Filesystem            Size  Used Avail Use% Mounted on
6 ]: v( s4 h% W, ]! V; {. o+ L: M$ D3 K/dev/sda1             3.9G  300M  3.4G   8% /
; b6 k8 ^% N. q( D/ U/dev/sda7             100G  188M   95G   1% /data0  o3 _% ~; l: R) d9 n
/dev/sdb1             133G   80G   47G  64% /data1
8 R+ X& g9 Y  m& d# B: q/dev/sda6             7.8G  218M  7.2G   3% /var: `6 O( l6 f6 `0 _
/dev/sda5             7.8G  166M  7.2G   3% /tmp
' m- f& p2 t4 F+ R, U1 c/dev/sda3             9.7G  2.5G  6.8G  27% /usr
" B$ q6 E' z8 p3 C  R# btmpfs                 2.0G     0  2.0G   0% /dev/shm
3 s# @: ]+ j8 U8 \8 b& Q* ?  I' Q/ @/ A  D# F( m
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
$ V$ ?- p% Q' [4 i6 d+ {! I3 I) B1 I* r2 @# M# I4 ~/ a4 S3 L4 U
    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。+ a# b: o" ?% }4 A9 }# S
* r  [0 ?/ _4 A' o* g7 D! p; p
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。! `, X9 E$ r# _! C

# P- V9 B- ?% a# y) `$ i" F    du:查询文件或文件夹的磁盘使用空间+ G) h4 h4 Y  I
: b- U% G' E8 N2 U  S
    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
  b: N3 `- z0 W/ |: U
, I4 X0 H5 x, c! c' P. v, a    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
; l0 r: t# X4 O" ^9 t: ?
; F7 j; ^+ [- D( F' \3 L- f以下是代码片段:5 x' Q; T2 G3 J, N

* ^0 X0 y' O" s3 u6 Y" V, E5 o6 b[root@bsso yayu]# du -h --max-depth=1 work/testing
( r# G1 c" b+ \0 T& f/ j/ i3 N27M     work/testing/logs" C5 @. {1 X1 C" k1 r5 d
35M     work/testing$ e9 u' Q$ s5 X; d# R% E: i

# C' M; q% p2 Y/ C+ ][root@bsso yayu]# du -h --max-depth=1 work/testing/*5 f7 [9 Q8 L1 l+ d! V4 s% F0 I
8.0K    work/testing/func.php
6 W7 ]4 B/ K1 ?! I; ^" S27M     work/testing/logs
+ Z$ W& z! J' E5 ~/ W  X4 R- U/ g8.1M    work/testing/nohup.out
' }3 ~2 O% F4 K* H5 `0 G2 o, ^( w8.0K    work/testing/testing_c.php$ N: T& g% ~# l2 Y
12K     work/testing/testing_func_reg.php
! A1 K+ ^% B+ G2 X8.0K    work/testing/testing_get.php
1 z8 M% l3 o* \; B1 Q3 Z* ~1 j' R( w8.0K    work/testing/testing_g.php- ]1 k9 H( v/ @, v8 W
8.0K    work/testing/var.php
% t' n' A: t3 R9 y
0 A9 V# }. _  F' c[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/; ~$ j9 R1 R6 @4 ~2 Y+ z
27M     work/testing/logs/" k1 a2 {' \0 r  t. ^1 s

/ D- G9 {& f; B, D1 M8 H* V[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
2 n+ A& r; [6 y9 D! K% Y24K     work/testing/logs/errdate.log_show.log9 ]" J* c' X+ n6 ?' `
8.0K    work/testing/logs/pertime_show.log# E; \; J5 H) D$ P6 f  B) H
27M     work/testing/logs/show.log4 y. {- v0 s* q7 g6 |+ M: l
7 @, L! C* M7 z! o; e; _+ x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-10-15 13:02 , Processed in 0.075704 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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