[CentOS] find /etc -size -1G return only empty files

Thu Mar 25 09:49:56 UTC 2010
Nicolas Thierry-Mieg <Nicolas.Thierry-Mieg at imag.fr>

Mike McCarty wrote:
> Nicolas Thierry-Mieg wrote:
>> Nicolas Thierry-Mieg wrote:
>>> Ala1n Sp1neu8 wrote:
>>>> Hello
>>>> find /etc -size -1G
>>>>
>>>> should return all files less than 1Giga byte in /etc, but return a
>>>> list of empty file (size=0)
>>>>
>>>> find /etc -size -2G
>>>>
>>>> work fine and return all the files
>>>>
>>>> This works the same  on my fedora11 and my centos 5 !
>>>>
>>>> Did I miss something or is it a bug ?
>>> not sure, but:
>>> -1  strictly less than one, being an int that has got to be zero.
>>> G   unit is GB.
>>
>> I'm sure now, a simple test confirms this.
>> +n :>=n, so behaves as expected
>> -n :<n, n being an int, so that's<=n-1 which can make a big difference
>> when you have a G behind that n.
>
> Interesting. The man page is somewhat ambiguous on this point, but
> does hint at that when it mentions that it references a number of
> units, the unit being changeable, and defaults to 512 bytes.
>
> So, then,
>
> 	-size -1024M
>
> should do what he wants, up to within 1MB blocks, but still
> doesn't reference bytes. To do it exactly by the byte, one would
> need
> 	-size -1073741824b

nitpicking, that should be -1073741825b

and should be identical to -1025M

or just use -2G: that's "up to 1GB", should be the same