1

GNU的-size标志find表现得很奇怪。假设我在一个目录中有以下三个文件:

$ lh
total 8.7M
-rw------- 1 wvoq wvoq  42K 2012-05-24 18:25 small
-rw------- 1 wvoq wvoq 7.3K 2012-05-24 18:37 tiny
-rw------- 1 wvoq wvoq 8.7M 2012-05-24 18:37 big

其中两个文件小于 1MB,另一个约为 9MB。哪些文件的大小小于 50K?

$ find -type f -size -50k
small
tiny

这是我们所期望的。但是哪些大小小于 1MB?

$ find -type f -size -1M
$

必然地,任何小于 50k 的文件也小于 1M,那么为什么会出现差异呢?更令人不安的是,我们有:

$ find -type f -size -2M
small
tiny

这似乎表明small并且tiny大小在 1 到 2 MB 之间,而实际上它们都小于 50k。这里发生了什么事?

4

1 回答 1

3

看起来 find 是,嗯,违反了最小惊喜原则?以其舍入行为。什么小于1M?0M。:-P

于 2012-05-25T18:15:49.343 回答