作者:无敌小志哥_443 | 来源:互联网 | 2015-12-07 03:49
在linux中可以使用du查看文件的磁盘使用量,通过mandu可以查看到du的英文介绍estimatefilespaceusage,也可以简单的理解为diskusage,取每个单词的首字母就是du,这样就容易记忆了。
在linux中可以使用du查看文件的磁盘使用量, 通过man du可以查看到du的英文介绍estimate file space usage,也可以简单的理解为disk usage,取每个单词的首字母就是du,这样就容易记忆了。
1、du命令格式
du -hsaS 文件
其中各参数意思:
-
-h : human readable,容量的显示更加友好,会自动换算成G、M的单位显示
-
-s : summarize,列出总量,不列出子目录的容量,常用
-
-a : all,表示列出所有的文件,不仅仅是目录
-
-S:separate dirs,不统计子目录的容量,偶尔用到。
2、du命令测试
先建立一个测试目录,使用ls查看测试目录的文件:
$ ls -alh
du命令测试目录
其中test是一个空目录,里面没有档案。
查看该目录容量使用情况
$ du -h
4.0K ./test
24K .
du默认会列出该目录和所有子目录的情况。
其中点(.)目录表示当前目录,占用24K,这个容量是如何计算出来的呢?就是该目录下的档案和子目录的容量总和,再加上该目录自身的占用空间。上例的计算如下:
.bash_history + .bash_logout + .bashrc + .profile + test目录 + 点(.)目录自身
= 4 + 4 + 4 + 4 + 4 + 4
= 24K
为什么.bash_history这文件是4K,和上面用ls列出来的容量不一致呢?这个涉及到文件系统的知识,这里的blocksize是4K,就算档案里的内容没有4K,实际上也会占用一个block,所以就是4K了。需要详细了解的,可以去查下文件系统blocksize的相关资料。
仅查看该目录总量,不列出子目录
$ du -hs
24K .
这样就只会列出指定目录的容量了。
仅查看该目录下档案总量,不包含子目录的容量
$ du -hS
4.0K ./test
20K .
这边点(.)目录显示是20K,因为排除掉了子目录(./test)
列出所有文件的容量,包括档案和子目录
$ du -ah
4.0K ./test
4.0K ./.bash_history
4.0K ./.bashrc
4.0K ./.bash_logout
4.0K ./.profile
24K .
查看单个档案的容量
$ du -h .profile
4.0K .profile
这个比较不常用,因为通过ls命令也可以查看到档案的容量使用情况。
总结
总的来说,笔者最常使用的还是du -hs,用来查看目录的总容量非常方便。更多的使用情况可以使用man du查看手册。