linux命令详解之du命令

来源:互联网 发布:冲突世界 知乎 编辑:程序博客网 时间:2024/06/01 18:39

du命令概述

du命令作用是估计文件系统的磁盘已使用量,常用于查看文件或目录所占磁盘容量。
du命令与df命令不同,df命令是统计磁盘使用情况,详见linux命令详解之df命令。
du命令会直接到文件系统内查找所有文件数据,所以命令执行时会耗费一点儿时间。
在默认情况下,输出结果大小是以KB为单位的。如果想以MB为单位,使用-m参数即可,如果只想知道目录占了多少容量,使用-s参数即可。

du命令语法

du [选项] [文件或目录名称]
参数:
-a--all, 列出所有的文件和目录容量大小而不仅仅列出目录容量大小,默认情况只是统计目录的容量大小,参考示例1。
-B--block-size=SIZE,指定单位大小。
-b--bytes,以字节为单位列出文件和目录的容量大小。
-c--total,除了列出文件和目录的容量大小外,列出总的容量大小,参考示例2。
-h--human-readable,以人们易读的方式(KB,MB,GB)显示容量大小,参考示例3。
--si:和-h参数类似,但是单位换算时是以1000进行换算,而不是1024。
-k:和--block-size=1k类似,以KB为单位。
-m:和--block-size=1m类似,以MB为单位。
-s--summarize,仅列出总量,而不列出每个目录和文件的大小,参考示例4。
-S--separate-dirs,和-s参数类似,但是统计时不包含子目录的容量大小。
--max-depth=N:类似于默认情况的du,但是,递归显示时的递归深度小于等于N。如果--max-depth=0,就相当于-s参数,只统计总量而已,参考示例4。如果--max-depth=1,就相当于du -s 目录/*,参考示例5。

du命令示例

test目录里的内容如下:

test/dir1        /dir1-dira            /dir1-dira-file1        /dir1-file1        /dir1-file2    /dir2    /file1    /file2[root@localhost test]# ll -R    # test目录下所有文件.:total 216drwxr-xr-x 3 root root  4096 Apr 18 05:47 dir1drwxr-xr-x 2 root root  4096 Apr 18 05:44 dir2-rwxr-xr-x 1 root root 91272 Apr 18 05:45 file1-rwxr-xr-x 1 root root 91272 Apr 18 05:46 file2./dir1:total 864drwxr-xr-x 2 root root   4096 Apr 18 05:48 dir1-dira-rwxr-xr-x 1 root root  55472 Apr 18 05:46 dir1-file1-rwxr-xr-x 1 root root 801528 Apr 18 05:47 dir1-file2./dir1/dir1-dira:total 4-rw-r--r-- 1 root root 0 Apr 18 05:48 dir1-dira-file1./dir2:total 0

示例1:列出目录下所有文件和目录的容量大小

[root@localhost test]# du  #默认情况下,只统计目录的容量大小。8       ./dir212      ./dir1/dir1-dira876     ./dir11092    .[root@localhost test]# du -a   #统计目录和文件的容量大小。100     ./file28       ./dir2100     ./file14       ./dir1/dir1-dira/dir1-dira-file112      ./dir1/dir1-dira792     ./dir1/dir1-file264      ./dir1/dir1-file1876     ./dir11092    .

示例2:统计各文件的大小,并显示总大小

[root@localhost test]# du  /home/test/    # 默认,不显示总大小8       /home/test/dir212      /home/test/dir1/dir1-dira876     /home/test/dir11092    /home/test/[root@localhost test]# du -c /home/test/   #最下面显示总大小total8       /home/test/dir212      /home/test/dir1/dir1-dira876     /home/test/dir11092    /home/test/1092    total

示例3:以易读的方式显示容量大小

[root@localhost test]# du -h /home/test8.0K    /home/test/dir212K     /home/test/dir1/dir1-dira876K    /home/test/dir11.1M    /home/test

示例4:仅显示目录的总大小

[root@localhost test]# du -s /home   #通过-s参数只统计总量3208    /home[root@localhost test]# du --max-depth=0 /home  #通过指定递归深度方式3208    /home

示例5:显示指定目录下每个文件或目录的容量大小

[root@localhost test]# du -s /*   #使用-s参数8320    /bin6659    /boot152     /dev170328  /etc3208    /home142868  /lib25868   /lib6416      /lost+found8       /media0       /misc16      /mnt0       /net16      /opt0       /proc200     /root36680   /sbin0       /selinux8       /srv0       /sys436     /tmp2498560 /usr72792   /var[root@localhost test]# du --max-depth=1 /   #使用指定递归深度方式436     /tmp142868  /lib0       /net16      /opt6659    /boot0       /sys8       /srv8       /media16      /mnt25868   /lib6436680   /sbin2498560 /usr170328  /etc16      /lost+found72792   /var0       /selinux8320    /bin0       /proc0       /misc200     /root3208    /home152     /dev2966147 /

示例6:显示指定目录下每个文件或目录的容量大小,并且以易读方式显示(常用)。

[root@localhost test]# du -sh /*8.2M    /bin6.6M    /boot152K    /dev167M    /etc3.2M    /home140M    /lib26M     /lib6416K     /lost+found8.0K    /media0       /misc16K     /mnt0       /net16K     /opt0       /proc200K    /root36M     /sbin0       /selinux8.0K    /srv0       /sys436K    /tmp2.4G    /usr72M     /var





注:本系列内容主要参考《鸟哥的linux私房菜》和CentOS系统自带的帮助文档以及网上相关资料,示例都是基于CentOS。

0 0