linux中,查找大文件及清除其内容的方法

来源:互联网 发布:php 定位获取周边小区 编辑:程序博客网 时间:2024/06/05 10:39

作者:11haiou

转自:http://hi.baidu.com/11haiou/item/f3a4878b601e084e840fab17


linux操作系统中,经常会遇到磁盘空间满的问题。如下图1所示:

图1

       遇到这样的问题,首先查下那个挂载点磁盘空间满。

方法一:然后cd到该挂载点下,本例中挂载点为"/",见图2:

                                     图2

       磁盘空间满,很多情况下是由于大文文件引起的,若文件不大,则一定是文件过多引起的,至于引起这个更深一层的原因,先不探讨。

       怎么查看大文件所在的路径,linux中有一个命令,叫du,先贴命令:du -m --max-depth=1或du -h --max-depth=1

du:用于统计linux中文件或目录所占磁盘空间的大小

du参数######

-m:以M为单位展示查询结果

-h:以K、M、G为单位展示查询结果,提高信息可读性

--max-depth=1:其中,数字“1”是指查询结果中最多显示的目录层数,这里指最多显示一层目录。

     cd到挂载点后,执行du -m --max-depth=1或du -h --max-depth=1命令,示例如下:

                                            图3

       作为对“du -m --max-depth=1”的一个优化,还可以使用“du -m --max-depth=1 |sort -nr”命令,这个命令的含义是统计目录所占磁盘空间的大小,并按数值的从大到小进行排序。

                                           图4
       然后,利用此命令,cd到/opt目录,再次利用“du -m --max-depth=1或du -h --max-depth=1”找出/opt目录中占用磁盘较大的文件或目录,这样逐层(目录)深入就一定会查询到大文件所在目录,当然也有可能是目录中文件过多所致。

     特别注意:

      以上方法只是对目录大小,进行判定,所以当确定某目录过大时,最好是cd到该目录,查看下有无大文件,然后再确定是否进入下一层目录。

       当找到大文件后,若因某些原因,不想对文件进行删除,可以用echo或cat或clear命令清除文件内容:

echo > /opt/log/big.log

        此命令会把/var/log目录中的big.log文件内容清除,而又不删除big.log文件

cat > /opt/log/big.log

        此命令能与“echo > /var/log/big.log”达到相同效果,不过,命令执行后,需要用“Ctrl + d”结束

clear > /opt/log/big.log

        此命令会把big.log文件内容清空,而不删除文件

同样的效果,用true、flase、“:”等也能实现清空文件内容,而不删除文件的效果

true > /opt/log/big.log
flase > /opt/log/big.log
: > /opt/log/big.log

       若想删除文件,只需利用rm命令即可

rm -f  /opt/log/big.log


原创粉丝点击