“查找”如何计算文件的大小?

how does `find' calculate the size of a file?

我尝试使用 find 来查找小于 2K(千字节)的文件,但是 find . -size -2048cfind . -size -2k 给出了完全不同的结果。

但是根据手册,这两个应该是一样的。

`c'    for bytes
`w'    for two-byte words
`k'    for Kilobytes (units of 1024 bytes)

我有一堆1.5k左右的文件。 -2048c 可以找到这些文件,但 -2k 什么也没找到。

这不是错误。 POSIX 指定 * find 在执行比较时应仅使用整个句点,并丢弃任何余数。这意味着 -size -2k 确实找不到任何大小在 1025 到 2047 字节之间的文件。

* 技术上只指定块单元大小确定; GNU find 将其扩展到千字节单位以保持一致性。