113

How can I make ls (or any other command) list only files bigger than a specific file size?

3 Answers 3

182

Use find and its -size flag.

To find files larger than 100MB:

find . -type f -size +100M

If you want the current dir only:

find . -maxdepth 1 -type f -size +100M
2
  • 3
    If you need to pass the size in bytes, use find . -type f -size +4096c (superuser.com/a/204571/111289) Aug 8, 2017 at 9:19
  • just to extend the answer: to get the number of files bigger than specified, pipe it to word count find . -maxdepth 1 -type f -size +100M | wc
    – B.Kocis
    Nov 9, 2020 at 12:55
41

If you wish to see all files over 100M and to see where they are and what is their size try this:

find . -type f -size +100M -exec ls -lh {} \;
4
  • 1
    I think it would be easier to use printf parameter -printf "%p %s". See: unixhelp.ed.ac.uk/CGI/man-cgi?find
    – Nux
    Nov 12, 2014 at 13:53
  • @Nux: nice tip. -printf '%9s %p\n' worked well for me.
    – seanf
    May 29, 2015 at 5:40
  • Building on this answer: find /var/lib/docker/containers -name "*-json.log" -type f -size +100M -exec /bin/cp -f /dev/null {} \;
    – Richard
    Feb 12, 2020 at 20:09
  • @Nux The problem with using %s is that while the size it prints is machine parsable, it's not human-readable, whereas ls -lh shows a human readable size.
    – Asclepius
    Nov 19, 2020 at 21:28
4

Use the following:

find / -size gt 2MB

or:

find / -size => 2000000 
3
  • 5
    How does this improve the accepted answer?
    – Dave M
    Feb 27, 2017 at 13:18
  • 1
    Though we thank you for your answer, it would be better if it provided additional value on top of the other answers. In this case, your answer does not provide additional value, since another user already posted that solution. If a previous answer was helpful to you, you should vote it up instead of repeating the same information. Feb 27, 2017 at 13:42
  • Alternative syntax is sometimes useful and insightful. +1 Dec 5, 2022 at 11:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.