找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 13418|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。+ \) A: h$ v+ M" f& D
! ?! x. U3 j( H1 _
    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。8 P# Z! T4 S( `
    du可以查看文件及文件夹的大小。
; H3 i' a; M( K$ W5 s# V  `
* O+ d" |& @; z! J    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
, Z# E+ W, R1 s& l. p% }
2 u. {9 ~* p! z; _6 }& [* A4 A6 @  下面分别简要介绍
0 G; x/ `% ~3 K1 T" i4 L; h$ a* v, a' ~; H
    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
  A& @$ }# g: @0 w
* @: m( m9 c0 g2 B以下是代码片段:2 `) l: M7 E7 G+ |  p6 `7 a9 n, l$ a

& @( c/ t! W* w  m" A[yayug@yayu ~]$ df -h+ [! |$ \& S) q! f2 @  ?
Filesystem            Size  Used Avail Use% Mounted on  C# R$ G' Z' D. K! l( }; o
/dev/sda1             3.9G  300M  3.4G   8% /
% E( x9 s0 H. \* B/dev/sda7             100G  188M   95G   1% /data0. r% L; A% t, D, s7 Y0 _- E* ~) V
/dev/sdb1             133G   80G   47G  64% /data1  W* Z0 F* N7 \% l9 X+ o
/dev/sda6             7.8G  218M  7.2G   3% /var
+ C/ C& t# X% Y' u- T% D/dev/sda5             7.8G  166M  7.2G   3% /tmp- o& I7 m; e/ b- a7 S
/dev/sda3             9.7G  2.5G  6.8G  27% /usr
! q' _, v1 y. e9 Utmpfs                 2.0G     0  2.0G   0% /dev/shm
- m& s( B/ }. T! ^5 f& C2 N, q! J2 P; L/ }) ^' F( N. c. S
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
0 N! \9 U# }3 I6 @( Z
+ b/ p; E' W2 h0 A  |8 h& ^    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。1 ]1 g" O& z, n% e: y+ b" {( b7 d  C- Z/ D
8 K4 }* T( z, g* c/ c
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
8 s& _5 o  a1 f9 ]
" p+ \; v0 A' F; e  H    du:查询文件或文件夹的磁盘使用空间
1 u+ d' H7 A' L6 E1 |& a8 g: ~4 I
7 A9 L. u& B& W% C9 h6 _1 @    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
0 a" J/ X+ c/ U: l" j' O: v7 W: x# b
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。
$ j4 [3 e4 @6 D9 G* c1 K/ s/ k/ d3 E4 q
以下是代码片段:
6 Z) t9 i5 p2 K/ Z/ q* p# f: Y5 B! \. F5 U; H0 A( v1 V
[root@bsso yayu]# du -h --max-depth=1 work/testing: f3 V( t+ _2 M4 n
27M     work/testing/logs. G6 {5 W# P, F: Q7 `: ?5 k: K, Z
35M     work/testing( K1 E3 i3 J4 `  j  G. N  y

' |+ Y4 ]9 V5 ?, h  A3 x" z# Y[root@bsso yayu]# du -h --max-depth=1 work/testing/*
3 `( X0 Z  |2 J' Y: \1 z$ l3 @8.0K    work/testing/func.php% d( v# ]' h9 A% G6 a. [! L
27M     work/testing/logs4 }- J6 }! B& f8 _
8.1M    work/testing/nohup.out
5 K4 q/ @# E1 w7 A. j! [) y: i8.0K    work/testing/testing_c.php
$ ^! J1 p2 l3 z; V) y; V12K     work/testing/testing_func_reg.php. c6 m1 T& M; @7 |, q9 e# D0 |
8.0K    work/testing/testing_get.php
5 T; n+ w9 b6 N, J4 p8.0K    work/testing/testing_g.php  l! O$ y" R3 v% }5 O
8.0K    work/testing/var.php, }0 u; n( U' e5 f
9 u. W7 g& j5 |# M7 c, u) |( g
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/! Z. o4 ~9 }, }& \
27M     work/testing/logs/: K# S1 @4 ]/ Q' Z5 d  x& f6 e
$ d" O9 T" p* t: _4 C
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
! Y2 o# l# R: W24K     work/testing/logs/errdate.log_show.log
4 e1 H1 K: a; `$ S: n1 [4 i! U. X8.0K    work/testing/logs/pertime_show.log/ Q) z8 \0 T- Q% l" x8 {
27M     work/testing/logs/show.log
% m- M) P2 |% G. z- Y8 x
$ B% E$ s9 \4 }1 r4 l7 o
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-5-30 12:05 , Processed in 0.085851 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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