linux 查找大目录和大文件的方法(推荐)

今天,在机器上执行命令的时候,发现tab键无法补全了,原因竟然是磁盘空间满了,使用df命令看了一下,确实如此,每个分区的使用率都得到100%了,因此想找到系统中的大目录和大文件,删除一部分。

主要涉及到两个命令 du和find

du命令(查找系统中的大目录):

-h已易读的格式显示指定目录或文件的大小

-s选项指定对于目录不详细显示每个子目录或文件的大小

-m或Cmegabytes 以1MB为单位

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

首先使用df命令,查看各挂载点磁盘空间的使用情况,然后从使用率接近100%的目录下,查看其各个子目录的大小情况

du -sm * 2> /dev/null  | sort -nr | head -5

可以使用sort对du输出的结果进行一个排序(如果du使用h参数,可能得不到正确的排序结果)

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

find命令(查找系统中的大文件)

获取某个目录下大于800M的所有文件

find . -type f -size +800M

如上命令所示,我们仅仅能看到超过800M大小的文件的文件名称,但是对文件的信息(例如,文件大小、文件属性)一无所知,那么能否更详细显示一些文件属性或信息呢,当然可以,使用如下命令:

find . -type f -size +800M  -print0 | xargs -0 ls -l


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

echo > a.log

clear > a.log

相关推荐