使用Cron作业按大小删除目录内的文件

时间:2013-04-14 01:09:00

标签: cron

我试图删除某个目录中具有特定大小的所有文件,在这种情况下完全是39位。我知道下面的代码将删除所有0位的文件。

find /home/.../...* -size 0 -type f -exec rm -f '{}' \;

那么我需要做些什么来使它适用于39位文件?下面的cron不起作用。

find /home/.../...* -size 39 -type f -exec rm -f '{}' \;

1 个答案:

答案 0 :(得分:1)

你有没有理由使用rm而不是找到自己的删除主?

find /home/.../...* -size 39c -type f -delete

为什么它不起作用的原因虽然它的大小主要采用的是参数为512k块的数量并且将文件大小向上舍入以满足该值,因此39实际上意味着文件大小在14,337和19,968字节之间。要指定要以字节为单位匹配的大小,您需要添加c后缀(对于字符)。

如果你必须使用rm,那么用+而不是\;结束命令会更有效率,因为它会将文件名一起批量匹配(比如使用xargs)以减少它需要的次数给rm打电话。