背景:因为磁盘空间被占满,导致redis ,sftp应用无法使用。这时需要清理磁盘空间,于是找出占用空间较大的文件和文件夹是比较重要的一步。
方法一:使用 du
和 sort
命令
1.查找当前目录及其子目录中占用空间较大的前10个文件或文件夹
du -ah . | sort -rh | head -n 10
说明:
du -ah .
:递归计算当前目录(.)下的所有文件和文件夹的空间占用,-a
表示显示所有文件和文件夹,-h
表示以人类可读的格式显示。sort -rh
:按数值大小逆序排序,-r
表示逆序,-h
表示以人类可读的格式排序。head -n 10
:显示排序后的前10行结果。
方法二:使用 du 和 find 命令
如果只想查找文件或文件夹,可以分别使用以下命令。
1.查找前10个占用空间最大的文件
find . -type f -exec du -h {} + | sort -rh | head -n 10
说明:
- find . -type f:查找当前目录(.)及其子目录中的所有文件。
- -exec du -h {} +:对查找到的每个文件执行 du -h 命令,{} 代表文件名,+ 表示以批处理方式执行。
- sort -rh | head -n 10:按数值大小逆序排序并显示前10行结果。
2.查找前10个占用空间最大的文件夹
du -h --max-depth=1 . | sort -rh | head -n 10
说明:
- du -h --max-depth=1 .:计算当前目录(.)下的文件夹大小,--max-depth=1 表示只计算当前目录的深度,不递归子目录。
- sort -rh | head -n 10:按数值大小逆序排序并显示前10行结果。