LINUX的磁盘管理du命令详解
du(disk usage)命令可以计算文件或目录所占的磁盘空间。没有指定任何选项时,它会测量当前工作目录与其所有子目录,分别显示各个目录所占的快数,最后才显示工作目录所占总快数。
命令用途
du(disk usage)命令可以计算文件或目录所占的磁盘空间。没有指定任何选项时,它会测量当前工作目录与其所有子目录,分别显示各个目录所占的快数,最后才显示工作目录所占总快数。
命令格式
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是 一样
使用案例
root@ubuntu:/# cd /home/web/
--------------------------------------
root@ubuntu:/home/web# du -s
793832 .–不指定FILE名字计算出当前目录所占用的空间大小。
--------------------------------------
root@ubuntu:/#$ du -sh
776M .–不指定FILE名字计算出当前目录所占用的空间大小。-h选项使得输出结果跟容易阅读(跟上例比较)
--------------------------------------
[root@localhost /]# du -h --max-depth=1
16K ./nonexistent
148K ./run
13M ./etc
72K ./tmp
0 ./sys
4.0K ./opt
4.0K ./mnt
557M ./root
4.0K ./lost+found
4.0K ./srv
12K ./boot
1.1G ./var
4.0K ./media
du: cannot access './proc/534/task/30271': No such file or directory
du: cannot access './proc/30264/task/30264/fd/4': No such file or directory
du: cannot access './proc/30264/task/30264/fdinfo/4': No such file or directory
du: cannot access './proc/30264/fd/4': No such file or directory
du: cannot access './proc/30264/fdinfo/4': No such file or directory
0 ./proc
4.0K ./.cpt_hardlink_dir_a920e4ddc233afddc9fb53d26c392319
0 ./dev
18G ./usr
4.0K ./home
20G .
[root@localhost /]#
找出大文件
磁盘空间被耗尽的时候,免不了要清理一下,比如说/home目录太大,就可以使用下面命令看看到底是谁:
du -s /home/* | sort -nr