找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14780|回复: 0

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

[复制链接]
发表于 2017-4-5 10:38:43 | 显示全部楼层 |阅读模式
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。! `9 S/ M' W: z

$ [7 u( d1 B5 x+ X( ^. N6 u  A1 D    df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。
9 b8 b1 U1 n  }    du可以查看文件及文件夹的大小。7 \2 ]5 \/ y9 E3 R! P

( H+ v0 p! t: E) |- J9 O    两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。
3 ?/ P& {9 ^. I) w( Q* V- P/ k. P2 m- C, Y, [0 w# q
  下面分别简要介绍$ l" h1 h7 r, p+ y

. L1 }3 ~" `; l! j3 O. |4 m    df命令可以显示目前所有文件系统的可用空间及使用情形,请看下列这个例子:
& [% q& O- q; |5 `2 E6 I4 j
; o! _- p. L+ r& A2 l以下是代码片段:
; X7 ?, o# G8 {7 f5 V; q, B) k* S3 p0 z
[yayug@yayu ~]$ df -h
! w2 N) q1 \- m  Z$ g3 b5 pFilesystem            Size  Used Avail Use% Mounted on
) ?, _! M) E, a! h: F8 {( U/dev/sda1             3.9G  300M  3.4G   8% /
; [9 m' G0 |: _8 d$ _/dev/sda7             100G  188M   95G   1% /data0% G# ?8 S8 {! u' v
/dev/sdb1             133G   80G   47G  64% /data1
$ \( x' P* [, E+ C/dev/sda6             7.8G  218M  7.2G   3% /var
9 s, o$ d8 E5 o$ S# H/dev/sda5             7.8G  166M  7.2G   3% /tmp
; f' Z1 y6 E5 ?/dev/sda3             9.7G  2.5G  6.8G  27% /usr6 [9 S4 _' A, }% S- F& A. {
tmpfs                 2.0G     0  2.0G   0% /dev/shm
' `1 t- s( [0 q; W* P3 |$ j8 g2 |7 N" q& a- T
参数 -h 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
9 P$ N& @- R3 p9 m( s
$ S5 T- U8 ?3 v8 @* Y    上面的命令输出的第一个字段(Filesystem)及最后一个字段(Mounted on)分别是档案系统及其挂入点。我们可以看到 /dev/sda1 这个分割区被挂在根目录下。
5 p3 {4 ]9 x" @$ X+ _7 N) W7 d, Z$ i5 ]5 q3 i
    接下来的四个字段 Size、Used、Avail、及 Use% 分别是该分割区的容量、已使用的大小、剩下的大小、及使用的百分比。 FreeBSD下,当硬盘容量已满时,您可能会看到已使用的百分比超过 100%,因为 FreeBSD 会留一些空间给 root,让 root 在档案系统满时,还是可以写东西到该档案系统中,以进行管理。
8 u* O  _$ ], L3 L' N( @5 X; x% w5 t
    du:查询文件或文件夹的磁盘使用空间" J8 A  D2 s# e5 l" i, f" v. s& `. H; T/ J

' Q: h8 B. @" Q; p/ S+ r5 e    如果当前目录下文件和文件夹很多,使用不带参数du的命令,可以循环列出所有文件和文件夹所使用的空间。这对查看究竟是那个地方过大是不利的,所以得指定深入目录的层数,参数:--max-depth=,这是个极为有用的参数!如下,注意使用“*”,可以得到文件的使用空间大小.
( h( i8 C6 K, S* `3 u. s' t! `: B! J. X& ~, ?* o
    提醒:一向命令比linux复杂的FreeBSD,它的du命令指定深入目录的层数却是比linux简化,为 -d。8 A( l  k8 t" h5 W% {) _
; |# L2 o; q9 K* r) d. o: T7 `
以下是代码片段:
5 ^% ?2 H4 c) z+ U4 ]0 a5 H
% e6 n' d& @( W% l1 O+ Y. @[root@bsso yayu]# du -h --max-depth=1 work/testing
( t  x- O: a3 v% V27M     work/testing/logs
  o" D# U. {$ o1 f3 T  U35M     work/testing
- a8 \; h3 ?9 g; J: v; d. c* H9 F+ s3 ^5 z% v* f( n) @
[root@bsso yayu]# du -h --max-depth=1 work/testing/*
2 X# P9 s  N: V( O) \% F8.0K    work/testing/func.php) |! X9 a5 `3 r5 l3 ~
27M     work/testing/logs  A& s* `- D; e5 {" h% K6 @/ l
8.1M    work/testing/nohup.out3 g) ~+ M" L3 N
8.0K    work/testing/testing_c.php
0 J2 z* ~5 A8 U2 L* p0 x6 q12K     work/testing/testing_func_reg.php% Z& l6 V! H" f. q' @  G
8.0K    work/testing/testing_get.php
7 g6 @: m! K' j0 a  t) A) |8.0K    work/testing/testing_g.php! K2 \  J% p; @% C5 J
8.0K    work/testing/var.php
: ?6 X2 ~- t: [0 ^+ P% M( [* V2 S  ]: P
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/
; z% _7 ?6 h& q0 Z6 `8 [27M     work/testing/logs/4 M6 Q/ \# \4 z( i8 D, t
( ?. D; F9 o: {$ J/ N
[root@bsso yayu]# du -h --max-depth=1 work/testing/logs/*
% d8 p$ y  [& Q# O+ R/ t24K     work/testing/logs/errdate.log_show.log' e' B1 V0 f1 T9 f1 z
8.0K    work/testing/logs/pertime_show.log
5 q6 S1 H$ b8 |0 b$ g27M     work/testing/logs/show.log
) I# H& i* m3 z* y! g' {
; j$ Q* D( I; k3 B9 x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-10-31 02:56 , Processed in 0.086075 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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