bugfindutils - Bugs: bug #36539, -size flag seems to be broken

 
 

bug #36539: -size flag seems to be broken

Submitted by:  None
Submitted on:  Fri 25 May 2012 06:34:57 PM UTC  
 
Category: findSeverity: 3 - Normal
Item Group: Wrong resultStatus: Duplicate
Privacy: PublicAssigned to: None
Originator Name: Patrick O'NeillOriginator Email: -unavailable-
Open/Closed: ClosedRelease: 4.4.2
Fixed Release: None

Add a New Comment(Rich Markup)
   

You are not logged in

Please log in, so followups can be emailed to you.

 

Sun 27 May 2012 09:54:35 PM UTC, comment #2:

Sorry for the duplication-- I registered my two cents on the original thread. FWIW, I think that adding another flag that implements the intuitive behavior has a lot of appeal in addition to the obvious advantage that it has already been suggested by the project's maintainer.

Patrick O'Neill <poneill>
Fri 25 May 2012 08:04:37 PM UTC, comment #1:

This is a duplicate of bug 12162. The issue is that the current syntax is interpreted as 'treat the suffix of the -size argument as block size, then round the files up to that block size, then filter based on larger or smaller than the boundary'. Thus, -size -50k says to find files less than 50 * (1024) when rounded to 1024 blocks, while -size -1M says to find files less than 1 * (10241024) when rounded to (10241024) blocks. 50k rounds up to 1M, so it is not less than 1 block of size 1M per block.

This is not intuitive, but changing it might break existing syntax. Suggestions on how to proceed are welcome.

Eric Blake <ericb>
Project Administrator
Fri 25 May 2012 06:34:57 PM UTC, original submission:

The -size flag for GNU find behaves strangely. Let's say I have the following three files in a directory:

$ 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

Two of the files are less than 1MB, and the other is about 9MB. Which of the files are less than 50K in size?

$ find -type f -size -50k
small
tiny

Which is what we expect. But which are less than 1MB in size?

$ find -type f -size -1M
$

Necessarily, any file less than 50k is also less than 1M, so why the discrepancy? Even more disturbingly, we have:

$ find -type f -size -2M
small
tiny

which would seem to suggest that small and tiny are between 1 and 2 MB in size, when in fact they are both <50k.

(cf. http://stackoverflow.com/questions/10759111/is-the-gnu-find-size-flag-broken)

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach File(s):
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -unavailable- added by poneill (Posted a comment)
  • -unavailable- added by ericb (Posted a comment)
  • -unavailable- added by None (Submitted the item)
  •  

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.

     

    Please enter the title of George Orwell's famous dystopian book (it's a date):

     

     

    Follow 2 latest changes.

    Date Changed By Updated Field Previous Value => Replaced By
    Fri 25 May 2012 08:04:37 PM UTCericbStatusNone=>Duplicate
      Open/ClosedOpen=>Closed

    Back to the top


    Powered by Savane 3.1-cleanup1