使用文件掩码删除tmp目录中的空文件

时间:2014-04-09 00:10:21

标签: linux bash debian delete-file

目前在我的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创建临时文件,最终导致整个网站失效。经过几个小时无法找到合适的解决方案。

1 个答案:

答案 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了解详情。