LINUX的du命令详解
命令用途
du(disk usage)命令可以计算文件或目录所占的磁盘空间。没有指定任何选项时,它会测量当前工作目录与其所有子目录,分别显示各个目录所占的快数,最后才显示工作目录所占总快数。
命令格式
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | du [OPTION]... [FILE]...
-a, --all
包括了所有的文件,而不只是目录
--apparent-size
print apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger due
to holes in ('sparse') files, internal fragmentation, indirect blocks, and the like
-B, --block-size=SIZE use SIZE-byte blocks
-b, --bytes 以字节为计算单位
-k 以千字节(KB)为计算单位
-m 以兆字节(M)为计算单位
-c, --total 最后加上一个总计(系统缺省)
-D, --dereference-args
dereference FILEs that are symbolic links
-H 跟 - -si效果一样。
-h, --human-readable 以比较阅读的方式输出文件大小信息 (例如,1K 234M 2G)。注:该选项在很多其他命令(df, ls)中也有效。
--si 跟-h 效果一样,只是以1000为换算单位
-l, --count-links 计算所有的文件大小,对硬链接文件,则计算多次。
-L, --dereference 显示选项中所指定符号连接的源文件大小。
-P, --no-dereference 不跟随任何的符号连接(缺省)
-S, --separate-dirs 计算目录所占空间时不包括子目录的大小。
-s, --summarize 只显示工作目录所占总空间
-x, --one-file-system 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-X FILE, --exclude-from=FILE 排除掉指定的FILE
--exclude=PATTERN 排除掉符合样式的文件,Pattern就是普通的Shell样式,?表示任何一个字符,*表示任意多个字符。
--max-depth=N |
只列出深度小于max-depth的目录和文件的信息 –max-depth=0 的时候效果跟–s是 一样
使用案例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | [root@T-web205-fc11]$ pwd [root@T-web205-fc11] /home/zxl/demo [root@T-web205-fc11]$ ll drwxrwxr-x 4 zxl zxl 4096 Apr 21 16:00 auto-conf drwxrwxr-x 3 zxl zxl 4096 May 19 16:24 bin drwxrwxr-x 3 zxl zxl 4096 Apr 21 15:59 build -rwxrwxr-x 1 zxl zxl 2202 Apr 21 15:27 build.xml drwxrwxr-x 5 zxl zxl 4096 Apr 21 15:59 classes drwxrwxr-x 8 zxl zxl 4096 May 19 16:31 conf drwxrwxr-x 4 zxl zxl 4096 Apr 21 15:25 htdocs drwxrwxr-x 5 zxl zxl 4096 Apr 21 15:23 java drwxrwxr-x 3 zxl zxl 4096 Apr 21 16:07 jboss drwxrwxr-x 2 zxl zxl 4096 May 18 20:29 jboss-conf drwxrwxr-x 4 zxl zxl 4096 Apr 21 15:26 lib drwxrwxr-x 3 zxl zxl 4096 May 19 19:27 logs drwxrwxr-x 6 zxl zxl 4096 Apr 21 16:45 mail_group drwxrwxr-x 3 zxl zxl 4096 Apr 21 15:30 project drwxrwxr-x 9 zxl zxl 4096 Apr 21 15:23 sql drwxrwxr-x 3 zxl zxl 4096 Apr 21 16:30 synclogs drwxrwxr-x 4 zxl zxl 4096 Apr 21 15:27 templates [root@T-web205-fc11]$ du -s 793832 .--不指定FILE名字计算出当前目录所占用的空间大小。 [root@T-web205-fc11]$ du -sh 776M .--不指定FILE名字计算出当前目录所占用的空间大小。-h选项使得输出结果跟容易阅读(跟上例比较) [root@T-web205-fc11]$ du --max-depth=1 -h --输出当前目录下各个子目录所使用的空间 83M ./java 87M ./build 197M ./jboss 128M ./lib 1.1M ./bin 52K ./synclogs 4.8M ./sql 920K ./conf 52K ./logs 20K ./mail_group 56K ./.svn 144M ./htdocs 56K ./jboss-conf 2.7M ./auto-conf 8.0K ./.mule 23M ./classes 43M ./templates 144K ./project 776M . |
找出大文件
磁盘空间被耗尽的时候,免不了要清理一下,比如说/home目录太大,就可以使用下面命令看看到底是谁:
1 | du -s /home/* | sort -nr |
最近评论