目前在我的Debian cron中有这个:
*/1 * * * * [ -s /tmp/#sql_362_0.MYD ] || rm -f /tmp/#sql_362_0.MYD
我想替换它,以便删除与#sql _ *匹配的任何文件.MYD。如果文件是空的,我只想删除它。
我假设我做了:
*/1 * * * * [ -s /tmp/#sql_*.MYD ] || rm -f /tmp/#sql_*.MYD
如果其中只有一个是空的,它会删除所有匹配的文件吗?那不是我想要的。
旁注 - 这是对issue的乐队助手,其中MYSQL创建临时文件,最终导致整个网站失效。经过几个小时无法找到合适的解决方案。
答案 0 :(得分:3)
使用find
可以完成工作。
*/1 * * * * find /tmp/ -maxdepth 1 -type f -name '#sql_*.MYD' -empty -delete
-maxdepth 1
:在子目录
-type f
:仅匹配常规文件(无目录,无符号链接等)
-name <pattern>
:匹配文件名模式
-empty
:仅匹配空文件
-delete
:删除该文件
请参阅man find
了解详情。