使用 find 查找大文件和旧文件
命令行工具所有 Linux 发行版
find 是 Linux 的标准命令,用于在目录树中搜索符合大小、修改时间、名称或类型等条件的文件的。find / -xdev -type f -size +1G 会列出根文件系统上大于 1 GB 的文件,这通常是查看是什么突然填满磁盘的最快方法。
1有用的测试
-size +500M(大于 500 MiB)、-mtime +30(30 天前修改)、-name '*.log'、-type f(仅文件)、-xdev(不跨越到其他文件系统)。
2显示大小
添加 '-exec ls -lh {} +' 以查看大小,或者使用 GNU find 的 -printf,例如 -printf '%s %p\n',并对输出进行排序。
3安全删除
-delete 会立即删除所有匹配项。先运行不带 -delete 的相同命令,阅读列表,然后将 -delete 作为最后一个选项添加。
如何查找超过 1 GB 的文件
- 运行:
sudo find / -xdev -type f -size +1G -exec ls -lh {} + - 在删除每个文件之前,先识别其所属的程序。
- 对于旧日志,请预览:
sudo find /var/log -type f -name '*.gz' -mtime +30 - 然后才能删除:
sudo find /var/log -type f -name '*.gz' -mtime +30 -delete
注意事项
- 将 -delete 放在测试前面会删除该路径下的所有内容。
- 数据库、虚拟磁盘和交换文件特意设置得很大:请勿删除它们。
相关文章
- 使用 du 和 ncdu 查看磁盘使用情况如何使用 du 和交互式的 ncdu 查找 Linux 磁盘中被占满的内容,并提供保留在单个文件系统中的选项。
- Inodes 与“设备上没有空间”什么是 inode、如何使用 df -i 查看 inode 使用情况,以及如何查找包含数百万个小文件的目录。
- df (磁盘剩余空间)如何读取 df 的输出,为什么普通用户在 Avail 降为零之前 Use% 就可能达到 100%,以及如何使用 df -i 检查 inode。
资料来源
最后审核: