Search code examples
shellsortingfind

How sort find result by file sizes


How can I sort by file size the results of the find command?

I trying to sort the result of this find command:

find ./src -type f -print0

I don't want the size of directories, I need the files relative paths sorted by size only.


Solution

  • Here is how to do using find command:

    find . -type f -exec ls -al {} \; | sort -k 5 -n | sed 's/ \+/\t/g' | cut -f 9
    

    Here is how to do using recursive ls command:

    ls -lSR | sort -k 5 -n
    

    Or, if you want to display only file names:

    ls -lSR | sort -k 5 -n | sed 's/ \+/\t/g' | cut -f 9