2012-05-25 117 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