How to sort 'find' results in bash by size

bash, find, pipe, shell, sorting

Solution

You can use `%k` for example to print the size in kilobytes:

find . -type f -size +2G -printf "%kKB %p\n" | sort -n

- By saying `-printf "%kKB %p\n"` you are printing the file in kilobytes and then the name.

- `sort -n` gets this input and sorts it accordingly.

See an example:

$ find . -type f -size +1M -printf "%p %kKB\n" | sort -n -k2
./arrr.txt.gz 1664KB
./brrr.gz 32388KB

Problem

I am wondering if there's an "easy" way (through a pipe or something) to order (by file size) the results of a "find" command in bash such as: ``` find /location/of/directory/ -type f -size +2G ```

Original source