用Cron作业按大小删除文件夹内的文件
问题描述:
我正试图删除特定大小的特定目录中的所有文件,本例中为39位。我知道下面的代码会删除所有0位的文件。用Cron作业按大小删除文件夹内的文件
find /home/.../...* -size 0 -type f -exec rm -f '{}' \;
那么,我需要做些什么才能使它适用于39位文件?下面的cron不起作用。
find /home/.../...* -size 39 -type f -exec rm -f '{}' \;
答
是否有任何理由使用rm而不是find自己的delete primary?
find /home/.../...* -size 39c -type f -delete
为什么它不虽然它的工作的大小主要采取的关键是参数为数字的512K块和舍入文件大小,以满足这一点,所以39实际上意味着14337之间的文件大小19,968字节。要指定大小以字节匹配,您需要添加一个后缀c
(用于字符)。
如果您必须使用rm,然后用+
而不是\;
结束命令会更有效,因为它将批量匹配文件名(如使用xargs)以减少调用rm所需的次数。