chaihongjun.me

linux下查找大文件或者大目录

    春节回来工作,需要做很多的检查工作,回想之前遇到过服务器磁盘不足的导致FTP故障的情况还是历历在目,一年结束新的一年又来了,必然要对服务器上过期无效的文件做一下整理,这里整理了一些常用的linux查找文件的方法。

1.首先是看整个服务器的磁盘占用情况:

df

linux下查找大文件或者大目录

df命令会列出磁盘的使用情况,具体参数加--help获得。挂载点alidata1的使用量已经是55%了,超过了一半,所以可以看下是不是有什么文件可以删除。首先想到的是该目录下的大于1G的文件:(1G=1024M)

find . -type f -size +1024M

linux下查找大文件或者大目录

这些都是一周备份文件是不能删除的。这些文件虽然都是大于1G的,但是具体大小多少怎么获知呢?

find . -type f -size +1024M -print0 | xargs -0 du -h

linux下查找大文件或者大目录

都是1.4G的,但有时候文件大小是不一致的,做个排序好了:

find . -type f -size +1024M -print0 | xargs -0 du -h | sort -nr

但是你可能会发现,结果不是按照从大到小排序,因为du的参数-h的缘故,可以改成这样:

find . -type f -size +1024M -print0 | xargs -0 du -hm | sort -nr

以上都是针对大文件的,当我想找找哪个文件夹比较大的时候怎么操作?特别是磁盘警告发生的时候。

du -h --max-depth=1

目录深度最大为1的时候,也就是显示最多下一层目录,显示目录的容量。

linux下查找大文件或者大目录

alidata1是我的数据磁盘,可以看到它的下一层目录,每个目录的大小。同样的,如果想排序方便查看可以添加sort:

 du -h --max-depth=1 | sort -n

如果你想知道lnmp下一层目录有哪些大文件夹,只要吧max-depth=1改成max-depth=2即可。

有时候这样查找出来的显示的结果比较的长,

linux下查找大文件或者大目录

如果只想看前面3个结果呢?

 du -h --max-depth=2 | sort -n | head -3

这样就只显示最大的3个目录了.

ps.

sort是linux的一个排除命令,常用参数为-nr,n参数是按照数值大小排序,r参数则是相反的意思

head命令是查看指定文件的指定行数,这里操作的时候把du输出的内容作为一个文件通过管道给到head去处理。


知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。作者:柴宏俊»