'Linux Command , how to find files by size larger than x?

I'm trying to find files with size larger than "x" , ex: 32 bytes

But what I found in ls --help was only ls -S , that just sort by size and not satisfied my demand

I'm new to Linux , I've tried Google but I don't know what keywords should I use to find answer , could somebody give me advice , thank you !



Solution 1:[1]

Try to use the power of find utility.

Find files greater than 32 bytes:

find -size +32c

Of course you could also ask for files smaller than 32 bytes:

find -size -32c

And files with exact 32 bytes:

find -size 32c

For files with 32 bytes or more:

find -size 32c -o -size +32c

Or not smaller than 32 bytes (the same as above, but written another way):

find ! -size -32c

And files between 32 and 64 bytes:

find -size +32c -size -64c

And you can also apply other common suffixes:

find -size +32k -size -64M

Solution 2:[2]

Try this:

find . -size +32c -ls

You can change 32 for the size you want. In this case, I used your example.

Solution 3:[3]

Explanation: Use unix command find Using -size oprator

The find utility recursively descends the directory tree for each path listed, evaluating an expression (composed of the 'primaries' and 'operands') in terms of each file in the tree.

Solution: According to the documentation

-size n[ckMGTP]
             True if the file's size, rounded up, in 512-byte blocks is n.  If n is fol-
             lowed by a c, than the primary is true if the file's size is n bytes (charac-
             ters).  Similarly if n is followed by a scale indicator than the file's size
             is compared to n scaled as:

             k       kilobytes (1024 bytes)
             M       megabytes (1024 kilobytes)
             G       gigabytes (1024 megabytes)
             T       terabytes (1024 gigabytes)
             P       petabytes (1024 terabytes)

Usage: perform find operation with -size flag and threshold measurement arguments: more than(+)/less than(-), number(n) and measurement type (k/M/G/T/P).

Formula: find <path> -size [+/-]<Number><Measurement>

Examples:

1.Greater Than - Find all files in my current directory (.) that greater than 500 kilobyte

find . -size +500k 

2.Less Than - Find all files in my current directory (.) that less than 100 megabyte.

find . -size -100M

3.Range - Find specific file (test) in my current directory (.) that greater than 500 kilobyte less than 100 megabyte (500k-1000k)

find . -name "test" -size +500k -size -100M

4.Complex Range with Regex Find all .mkv files in all filesystem (root /) that are greater than 1 gigabyte and created this month, and present info of them.

find / -name "*.mkv" -size +1G -type f -ctime -4w | xargs ls -la

Solution 4:[4]

Here is a handy one liner that finds large files and lists the size of them, so you can view just how large they are. I find this useful when trying to clean up my filesystem when low on disk space.

This command will find files that are in the current directory or subdirectories, and are larger than 100MB. The files will be listed in the long format with the size, full path to the file, last modified date, and owner:

sudo find . -type f -size +100M -exec ls -lh {} \;

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2
Solution 3 avivamg
Solution 4 yg-dba