删除具有mongoID作为名称的文件,该名称早于特定时间戳

时间:2013-08-20 23:06:50

标签: linux mongodb shell

我有以下情况。人们可以上传图像,然后用这些图像创建一些故事。并不总是将图像用于故事,因此每当他们上传图像时,我都会将该图像放在tmp目录中(给它命名为mongoID字符串:507f191e810c19729de860ea.jpg),如果他们想要制作一个有了它的故事,我对图像进行一些操作并将其保存到更合适的目录中。

所以我的tmp目录变得拥挤未使用的图像。以前我使用的是一个放在cron作业上的php脚本。这个脚本遍历tmp目录中的所有图像,从mongoID字符串中提取时间戳,如果时间戳超过一段时间(让我们做3天),我就删除了那个图像。这个cron任务每天都在特定的时间运行,我很高兴。

但在读完之后我可以put a command on cron job悲伤降临到我的心里。我每天都在醒来,并认为我的解决方案不太好。所以我试图使用带有find命令的rm命令来实现相同的结果,但是(因为你在这里看到我的帖子)没有运气。

有没有办法以rm命令执行我的任务?

P.S。 MongoID string is a 24 character string字母为a-f,0-9。所以在我的情况下我有像

这样的图像
507f1f77bcf86cd799439011.jpg
507f1f77bcf86cd7a9439051.jpg
507f1f77bcf86cd799433fd1.jpg

1 个答案:

答案 0 :(得分:2)

这个怎么样?

find /tmp -mtime +5 -name "*.jpg" -type f
   -regextype posix-egrep -regex ".*/[a-zA-Z0-9]{24}.jpg" -exec ls -l {} \;