July 27, 2007 · General · Email This Post

Sponsored Link
If you want to Sort your files and folders by size use the following tip

You need to open terminal use the following command

ls -lS --block-size=1 | awk ‘ {print $5,$6,$7,$8}' >size.txt; du -s --block-size=1 */ >>size.txt; sort -n size.txt

or

{ ls -lS --block-size=1 | awk ‘ {print $5,$6,$7,$8}'; du -s --block-size=1 */ ; } | sort -nr | less

Incoming search terms:

Related posts

10 Comments to “How to Sort files and folders by size”

  1. Eli Criffield says:

    This is i think the first thing someone showed me my first day on the job as a unix admin may years ago.

    $ du -s * |sort -n

    with gnu du you can add -m to get the output in megs. ( du -sh * is nice too but won’t sort)

    $ du -sm * |sort -n

    Many Many hours of a Unix admins life is spent doing du -s * |sort -n then cd to the last directory and repeat ….

    If your looking for what filled up your filesystem that wasn’t full an hour ago you can also whip together a big find command to find all files over say 100 megs that where modified in the last hour.

    Eli Criffield

    [Reply]

  2. ahvargas says:

    You can do this to:
    for i in `du -s * |sort -n |cut -f2`; do du -h $i; done

    [Reply]

  3. ahvargas says:

    Also you can try this:
    ls -Slh|cut -c32-36,52-

    [Reply]

  4. Just Another Perl Hacker says:

    Along the lines of Eli Crffield’s post (but showing everything underneath, instead of just the pwd) how about:

    du -ab | sort -n

    [Reply]

  5. Just Another Perl Hacker says:

    BTW, I forgot… for those of you who prefer gui interaction, there’s always something like “kfind” and “gnome-find” too. Ah… so many ways to slice the onion!

    [Reply]

  6. Angelos says:

    du -h | sort -n #works fine for me

    [Reply]

  7. Travis Williams says:

    ls -lSh works for me.

    [Reply]

  8. TankerKevo says:

    ls -lrSh

    Same deal as Travis but larger files sorted to the bottom of the list.

    [Reply]

  9. faif says:

    To get a sorted human-readable output of the file size and name you can use:

    ls -lSh *.ogg | awk ‘{print $6 “\t” $9}’

    [Reply]

    faif Reply:

    Since the previous solution works only on files (ls reports the default block size for directories), here’s a second (slower) solution that works on mixed (directories and files) lists:

    du -s ~/* | sort -rn | awk ‘{print $2}’ | xargs du -sh

    [Reply]

Leave a Reply