我试图删除某个目录中具有特定大小的所有文件,在这种情况下完全是39位。我知道下面的代码将删除所有0位的文件。
find /home/.../...* -size 0 -type f -exec rm -f '{}' \;
那么我需要做些什么来使它适用于39位文件?下面的cron不起作用。
find /home/.../...* -size 39 -type f -exec rm -f '{}' \;
答案 0 :(得分:1)
你有没有理由使用rm而不是找到自己的删除主?
find /home/.../...* -size 39c -type f -delete
为什么它不起作用的原因虽然它的大小主要采用的是参数为512k块的数量并且将文件大小向上舍入以满足该值,因此39实际上意味着文件大小在14,337和19,968字节之间。要指定要以字节为单位匹配的大小,您需要添加c
后缀(对于字符)。
如果你必须使用rm,那么用+
而不是\;
结束命令会更有效率,因为它会将文件名一起批量匹配(比如使用xargs)以减少它需要的次数给rm打电话。