du命令是用来统计目录或者文件所占磁盘空间大小,通常在清理磁盘空间时用的比较多。
du的基本参数:
du [-ahskm] 文件或目录名称选项与参数: -a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。 -h :以人们较易读的容量格式 (G/M) 显示; -s :列出总量而已,而不列出每个各别的目录占用容量; -S :不包括子目录下的总计,与 -s 有点差别。 -k :以 KBytes 列出容量显示; -m :以 MBytes 列出容量显示; 范例一:列出目前目录下的所有文件容量 [root@www ~]# du 8 ./test4 <==每个目录都会列出来 8 ./test2....中间省略.... 12 ./.gconfd <==包括隐藏文件的目录 220 . <==这个目录(.)所占用的总量 # 直接输入 du 没有加任何选项时,则 du 会分析『目前所在目录』 # 的文件与目录所占用的硬盘空间。但是,实际显示时,仅会显示目录容量(不含文件), # 因此 . 目录有很多文件没有被列出来,所以全部的目录相加不会等于 . 的容量喔! # 此外,输出的数值数据为 1K 大小的容量单位。 范例二:同范例一,但是将文件的容量也列出来 [root@www ~]# du -a 12 ./install.log.syslog <==有文件的列表了 8 ./.bash_logout 8 ./test4 8 ./test2....中间省略.... 12 ./.gconfd 220 . 范例三:检查根目录底下每个目录所占用的容量 [root@www ~]# du -sm /* 7 /bin 6 /boot.....中间省略.... 0 /proc.....中间省略.... 1 /tmp 3859 /usr <==系统初期最大就是他了啦! 77 /var # 这是个很常被使用的功能~利用通配符 * 来代表每个目录, # 如果想要检查某个目录下,哪个次目录占用最大的容量,可以用这个方法找出来 # 值得注意的是,如果刚刚安装好 Linux 时,那么整个系统容量最大的应该是 /usr # 而 /proc 虽然有列出容量,但是那个容量是在内存中,不占硬盘空间。
与 df 不一样的是,du 这个命令其实会直接到文件系统内去搜寻所有的文件数据, 所以上述第三个范例命令的运行会运行一小段时间!此外,在默认的情况下,容量的输出是以 KB 来设计的, 如果你想要知道目录占了多少 MB ,那么就使用 -m 这个参数即可啰!而如果你只想要知道该目录占了多少容量的话,使用 -s 就可以啦!
至于 -S 这个选项部分,由于 du 默认会将所有文件的大小均列出,因此假设你在 /etc 底下使用 du 时, 所有的文件大小,包括 /etc 底下的次目录容量也会被计算一次。然后最终的容量 (/etc) 也会加总一次, 因此很多朋友都会误会 du 分析的结果不太对劲。所以啰,如果想要列出某目录下的全部数据, 或许也可以加上 -S 的选项,减少次目录的加总喔!
本文转自岁月丶倾城博客51CTO博客,原文链接http://blog.51cto.com/alca0126/1582660如需转载请自行联系原作者
laihuadongcto