bash - 使用 bash 删除旧文件的最有效方法

标签 bash unix find

我目前通过 bash 脚本(在 Centos 6 上)每 30 分钟执行一次此命令,以删除大约 1 小时前的文件。问题是 find 命令使用了 45%我的 cpu 一直都在。有没有办法优化它。在任何时间点缓存中大约有 20 万个项目

find /dev/shm/cache -type f -mmin +59 -exec rm -f {} \;

最佳答案

您可以尝试使用 nice 以较低优先级运行该进程:

nice -n 19 find ...

另一件事,它可能不会对性能产生影响, 但是要使用 find 删除匹配的文件, 一个更简单的方法是 -delete 而不是 -exec:

find /dev/shm/cache -type f -mmin +59 -delete

... 如果您的 find 版本支持它(感谢 @chepner 指出)(现代版本支持...)

关于bash - 使用 bash 删除旧文件的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33400890/

相关文章:

Bash 自动完成不会转义 SPACE 并且不会在 Ubuntu 11.4 中标记目录

linux shell 获取文件名

bash - bash 中的 </dev/null 是什么?

macos - 为什么我不能进入这个目录?

javascript - 查找不是函数错误

linux - 如何在 Linux 终端中按时间顺序对列表进行排序?

linux - 限制用户访问 linux/ubuntu 中的特定目录

linux - 人类可读、递归、排序的最大文件列表

bash,向前和向后查找最近的下一个值

linux - 如何在第一行打印包含 "#!bin/bash"的文件名