2012-05-25 74 views
1

GNU find-size标志行为很奇怪。假设我在目录中有以下三个文件:GNU find -size标志是否被破坏?

$ 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 

这似乎表明,smalltiny是1和2 MB的大小,而事实上,他们都是< 50K之间。这里发生了什么事?

回答

2

看起来像发现是,嗯,违反最不出奇的原则?以其四舍五入的行为。什么少于1M? 0M。 :-P

+1

是的。对于查找此页面的其他人,请参阅此处的findutils错误跟踪器上的线程:https://savannah.gnu.org/bugs/?func = deiteitem &item_id = 12162 – wvoq