2015-01-03 108 views
0

我试图使用find来查找小于2K(千字节)的文件,但find . -size -2048cfind . -size -2k给出了完全不同的结果。`find'如何计算文件的大小?

但根据手册应该认为这两者应该是相同的。

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

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

+1

你将不得不解释你在哪些条件下发现不同的结果。 –

+0

@almasshaikh但2048c意味着2k对不对?如果我使用b,我必须做数学。 – leetom

+0

http://stackoverflow.com/questions/10079740/find-files-with-size-in-unix – manoj

回答

2

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

*从技术上说,它只是规定块单位大小的确定; GNU find将其扩展到kilobyte单位以保持一致性。

+0

那么这意味着'-size -2048c'实际上等于'-size -3k'? – leetom

+0

不,因为'-size -3k'将包含大小为2048字节的文件。 –

+0

我明白了,谢谢! – leetom