2

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

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

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

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

1 回答 1

1

你有什么理由使用 rm 而不是 find 自己的 delete primary 吗?

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

为什么它不起作用的关键,尽管它的大小主要是参数作为 512k 块的数量并将文件大小四舍五入以满足该大小,所以 39 实际上意味着文件大小在 14,337 和 19,968 字节之间。要以字节为单位指定要匹配的大小,您需要添加c(for characters) 的后缀。

如果您必须使用 rm,那么以 a+而不是\;更有效地结束命令,因为它将批量匹配文件名(如使用 xargs)以减少它需要调用 rm 的次数。

于 2013-04-14T01:50:03.330 回答