linux du命令(显示目录或文件的大小)

 

du的英文为:disk usage,含义是磁盘空间使用情况,功能是逐级进入指定目录的每一个子目录并显示该目录占用文件系统数据块的情况,如果没有指定目录,则对当前的目录进行统计。

 

查看当前目录文件夹大小

du -sh .

 

du的命令各个选项含义如下:

-a或-all   显示目录中个别文件的大小。

-b或-bytes   显示目录或文件大小时,以byte为单位。

-c或--total   除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。

-D或--dereference-args   显示指定符号连接的源文件大小。

-h或--human-readable   以K,M,G为单位,提高信息的可读性

-H或--si   与-h参数相同,但是K,M,G是以1000为换算单位。

-k或--kilobytes   以1024 bytes为单位。

-l或--count-links   重复计算硬件连接的文件。

-L<符号连接>或--dereference<符号连接>   显示选项中所指定符号连接的源文件大小。

-m或--megabytes   以1MB为单位。

-s或--summarize   仅显示总计

-S或--separate-dirs   显示个别目录的大小时,并不含其子目录的大小。

-x或--one-file-xystem   以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。

-X<文件>或--exclude-from=<文件>   在<文件>指定目录或文件

--exclude=<目录或文件>   略过指定的目录或文件

--max-depth=<目录层数>   超过指定层数的目录后,予以忽略

--help   显示帮助。

--version   显示版本信息。

 

4.使用实例:

实例1:显示目录或者子目录所占空间 

命令:

du

输出:

[root@localhost test]# du

608     ./test6

308     ./test4

4       ./scf/lib

4       ./scf/service/deploy/product

4       ./scf/service/deploy/info

12      ./scf/service/deploy

16      ./scf/service

4       ./scf/doc

4       ./scf/bin

32      ./scf

8       ./test3

1288    .

[root@localhost test]#

说明:

只显示当前目录下面的子目录的目录大小和当前目录的总的大小,最下面的1288为当前目录的总大小

 

实例2:显示指定文件所占空间

命令:

du log2012.log

输出:

[root@localhost test]# du log2012.log 

300     log2012.log

[root@localhost test]#

说明:

 

实例4:显示多个文件所占空间

命令:

du log30.tar.gz log31.tar.gz

输出:

[root@localhost test]# du log30.tar.gz log31.tar.gz 

4       log30.tar.gz

4       log31.tar.gz

[root@localhost test]#

说明:

 

实例5:只显示总和的大小

命令:

du -s

输出:

[root@localhost test]# du -s

1288    .

等价于 [root@localhost test]# du -s .

[root@localhost test]# du -s scf

32      scf

[root@localhost test]# cd ..

[root@localhost soft]# du -s test

1288    test

[root@localhost soft]#

说明:

 

 

实例6:方便阅读的格式显示

命令:

du -h test

输出:

[root@localhost soft]# du -h test

608K    test/test6

308K    test/test4

4.0K    test/scf/lib

4.0K    test/scf/service/deploy/product

4.0K    test/scf/service/deploy/info

12K     test/scf/service/deploy

16K     test/scf/service

4.0K    test/scf/doc

4.0K    test/scf/bin

32K     test/scf

8.0K    test/test3

1.3M    test

 

 

实例7:文件和目录都显示

命令:

输出:

[root@localhost soft]# du -ah test

4.0K    test/log31.tar.gz

4.0K    test/test13.tar.gz

0       test/linklog.log

0       test/test6/log2014.log

300K    test/test6/linklog.log

0       test/test6/log2015.log

4.0K    test/test6/log2013.log

300K    test/test6/log2012.log

0       test/test6/log2017.log

0       test/test6/log2016.log

608K    test/test6

0       test/log2015.log

0       test/test4/log2014.log

4.0K    test/test4/log2013.log

300K    test/test4/log2012.log

308K    test/test4

4.0K    test/scf/lib

4.0K    test/scf/service/deploy/product

4.0K    test/scf/service/deploy/info

12K     test/scf/service/deploy

16K     test/scf/service

4.0K    test/scf/doc

4.0K    test/scf/bin

32K     test/scf

4.0K    test/log2013.log

300K    test/log2012.log

0       test/log2017.log

0       test/log2016.log

4.0K    test/log30.tar.gz

4.0K    test/log.tar.bz2

4.0K    test/log.tar.gz

0       test/test3/log2014.log

4.0K    test/test3/log2013.log

8.0K    test/test3

4.0K    test/scf.tar.gz

1.3M    test

[root@localhost soft]#

说明:

 

 

实例8:显示几个文件或目录各自占用磁盘空间的大小,还统计它们的总和

命令:

du -c log30.tar.gz log31.tar.gz

输出:

[root@localhost test]# du -c log30.tar.gz log31.tar.gz 

4       log30.tar.gz

4       log31.tar.gz

8       总计

[root@localhost test]#

说明:

加上-c选项后,du不仅显示两个目录各自占用磁盘空间的大小,还在最后一行统计它们的总和。

 

 

实例9:按照空间大小排序

命令:

du|sort -nr|more

输出:

[root@localhost test]# du|sort -nr|more

1288    .

608     ./test6

308     ./test4

32      ./scf

16      ./scf/service

12      ./scf/service/deploy

8       ./test3

4       ./scf/service/deploy/product

4       ./scf/service/deploy/info

4       ./scf/lib

4       ./scf/doc

4       ./scf/bin

[root@localhost test]#

说明:

 

实例10:输出当前目录下各个子目录所使用的空间

命令:

du -h  --max-depth=1

输出:

[root@localhost test]# du -h  --max-depth=1

608K    ./test6

308K    ./test4

32K     ./scf

8.0K    ./test3

1.3M    .

[root@localhost test]#

 

 

1> 要显示一个目录树及其每个子树的磁盘使用情况

du /home/linux

这在/home/linux目录及其每个子目录中显示了磁盘块数。

2> 要通过以1024字节为单位显示一个目录树及其每个子树的磁盘使用情况

du -k /home/linux

这在/home/linux目录及其每个子目录中显示了 1024 字节磁盘块数。

3> 以MB为单位显示一个目录树及其每个子树的磁盘使用情况

du -m /home/linux

这在/home/linux目录及其每个子目录中显示了 MB 磁盘块数。

4> 以GB为单位显示一个目录树及其每个子树的磁盘使用情况

du -g /home/linux

这在/home/linux目录及其每个子目录中显示了 GB 磁盘块数。

5>查看当前目录下所有目录以及子目录的大小:

du -h .

“.”代表当前目录下。也可以换成一个明确的路径

-h表示用K、M、G的人性化形式显示

6>查看当前目录下user目录的大小,并不想看其他目录以及其子目录:

du -sh user

 

8>列出当前目录中的目录名不包括xyz字符串的目录的大小:

du -h –exclude=’*xyz*’

 

3、ls以K、M、G为单位查看文件大小

 

ls -lh命令只能查看文件的大小,但是不能查看文件夹的大小,参数不能分开

[root@auc-test2 home]# ls -lh

总用量 312M

drwxrwxrwx  8 root  root  4.0K 6月   5 07:31 Adtec

-rwxr-xr-x  1 root  root   22K 5月  13 16:17 eccs.bin

-rwxrwxrwx  1 root  root    79 6月   5 07:31 ifdown.sh

-rwxrwxrwx  1 root  root    75 6月   5 07:31 ifup.sh

drwx------. 2 root  root   16K 6月   5 06:51 lost+found

drwxr-xr-x  4 root  root  4.0K 6月   5 07:31 monitor

drwxr-x--x  6 mysql mysql 4.0K 6月   9 17:50 mysql

-rw-r--r--  1 root  root  312M 5月  13 16:17 packages.tar.gz

 

你可能感兴趣的:(linux)