欢迎,来自IP地址为:18.205.56.209 的朋友
作为Linux系统的管理员,定期查看系统的目录及文件磁盘占用情况是十分必要的,可以将不需要而又占用大量磁盘容量的文件删除,以腾出更多的磁盘空间。
本文将讲解如何使用 du 命令和 find 命令来找出Linux系统占用磁盘空间最大的目录和文件。
使用如下命令,就可以将/var目录下占用空间最大的目录显示出来:
# du -a /var | sort -n -r | head -n 5
让我们对上面命令及各个参数加以说明:
du : 命令,用于估算文件空间大小
-a : 参数表示显示所有文件和目录
sort : 命令,用于对文本进行排序
-n -r : sort命令参数,表示根据数值大小排序,并按反向排序(正向是由小到大,反向是由大到小)
head : 命令,用于前面的内容
-n : head命令参数,用于指定显示的行数(本例显示5行)
由于输出的结果是以字节来表示的,可能不方便查看,可以给上面的 du 命令加入 -h 参数,就可以将结果以人类方便阅读的习惯显示出来。
# du -ha /var | sort -n -r | head -n 5
以下这条命令就可以查看所有目录占用空间的大小:
# du -hs * | sort -rh | head -5
同样,如果想把目录中的子目录分别统计,那么要使用以下命令:
# du -Sh | sort -rh | head -5
如果想统计单个文件的大小,那么需要使用 find 命令,示例如下:
# find -type f -exec du -Sh {} + | sort -rh | head -n 5
这条命令会找到系统中占用磁盘空间最大的5个文件,当然,如果想要在特定目录中查找,则只需要在 find 命令中指定目录即可,例如:
# find /downlaods -type f -exec du -Sh {} + | sort -rh | head -n 5
find 命令在特定目录中查找最大文件,还有如下用法:
# find /downlaods -type f -printf "%s %p\n" | sort -rh | head -n 5
得到结果与第一条命令的一致,但是文件大小会以字节来显示,所以推荐使用第一种。