Rain WikiWindows · Linux · Android

使用 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 的文件

  1. 运行:sudo find / -xdev -type f -size +1G -exec ls -lh {} +
  2. 在删除每个文件之前,先识别其所属的程序。
  3. 对于旧日志,请预览:sudo find /var/log -type f -name '*.gz' -mtime +30
  4. 然后才能删除:sudo find /var/log -type f -name '*.gz' -mtime +30 -delete

注意事项

  • 将 -delete 放在测试前面会删除该路径下的所有内容。
  • 数据库、虚拟磁盘和交换文件特意设置得很大:请勿删除它们。

资料来源

  1. find(1) man7.org
  2. du(1) man7.org

最后审核: