Sort All Files (any depth) within a Folder by Size

33,631

Solution 1

Open Terminal, cd to the folder you want to analyze and use this command:

find . -type f -print0 | xargs -0 ls -l | sort -k5,5rn

It should print a list of all files in the hierarchy, sorted by size. At least on my machine, which is not a Mac, but some other Unix. But in principal it should be roughly the same.

Thanks to Richard Hoskins for the bug with the spaces in the names. That's actually a feature in xargs. See this site where it's explained quite nicely. Above version should work now.

Edit

Here is an explanation how the command works:

find . ==> find items from current working directory "."

-type f ==> search for regular files

-print0 ==> print full file name to standard out, ending with a null character, instead of newline (this is for handling filenames with newlines and white space by xargs)

xargs ==> execute command xargs (executes a command for every line in standard in)

-0 ==> line delimiter is null character

ls -l ==> the command for xargs to execute. This way we get the details especially the size of the files.

sort ==> sort lines in standard in

-k5,5rn ==> sort field definition, begin at field 5 (delimiter default is blank) and end at field 5. That's the size field in ls -l display. r stands for reverse sort order, so that the biggest files are on top and n stands for numerical sort order.

Solution 2

  • open Finder
  • go to folder
  • Finder > File > Find...
  • in Search change selection from This Mac to "folder name"
  • click Kind
  • select Other and then Size
  • click button OK
  • (solution to my problem is size greater than 1 MB)

Solution 3

Assuming it's just a folder, open the folder in Finder. Then click the "Detail" view button. Finally, click the "Size" column. The largest files will sort to the top. Additionally, folders within this folder are also sorted by size -- simply click the triangle next to them, and you will see their files sorted as well. (Don't "open" the folder by double-clicking, just click the triangle to expand their contents.)

Screen Shot

If you wanted to do a search, you can search by file size. Go to the File menu, and choose Find. Click the list that starts out saying "Kind," and choose "Other." Select Size from the list that comes up. Enter your criteria and search. However, I cannot find a way to make the search results display the file size column, so it's easier to use that to, say, find files greater than a certain size than to actually sort by size.

Solution 4

For cleaning my disk of big files, I prefer simply using Grand Perspective:

cool looking and useful

Solution 5

  • Navigate to the folder in the .
  • Momentarily enter anything in the search field on the toolbar.
    • search field
  • Once you have the search mode active you can delete what you entered to avoid filtering on that text.
  • Click the (+) icon at the right to add a search criteria.
  • Select File size, is greater than, and whatever minimum threshold works for you.
    • Zero (0) is an option, but enough results may make things slow.
  • You may need to right-click (control-click, two-finger click, etc) on the column headers to √ the Size column.

It will look something like this: files over 1 GB

Share:
33,631

Related videos on Youtube

Željko Filipin
Author by

Željko Filipin

Freelance software engineer. International contractor at the Wikimedia Foundation.

Updated on September 17, 2022

Comments

  • Željko Filipin
    Željko Filipin over 1 year

    I have a folder full of folders and files. I want to sort files by size (so I could remove the largest files).

    I know how to do that in Windows Explorer, but I can not find a way to do it in Mac OS X Finder.

    Windows 2003:

    • open folder in Windows Explorer
    • click button Search
    • leave Search for files or folders named and Containing text text fields empty
    • click button Search Now
    • sort by size

    Is there a way to do something like this in Finder on Mac OS X?

    • Admin
      Admin over 14 years
      Check the edits. Outside of what I've posted, anything further would probably need a 3rd-party tool.
  • Željko Filipin
    Željko Filipin over 14 years
    It is not just a folder, I guess I was not clear enough. The folder is full of other folders and files.
  • John Rudy
    John Rudy over 14 years
    See the edit I just dropped in about searching. You can do it, but it's a bit more difficult. However, if you are in list view as displayed above, each folder is also sorted by size -- click the disclosure triangle next to the folder, and its contents will also be sorted by size.
  • Željko Filipin
    Željko Filipin over 14 years
    Thanks. There are a lot of folders inside folders, so expanding each folder is not option for me. Finder search looks like it could work, but I just can not find a way to search for all files (I do not want to enter anything for file name, I want all files to be listed).
  • galoget
    galoget over 14 years
    Does du work in Mac OS X? I've never tried.
  • Željko Filipin
    Željko Filipin over 14 years
    Is there a wildcard (like *) that would match all file names?
  • John Rudy
    John Rudy over 14 years
    Don't enter a file name at all, when the search box comes up, make sure that only "size" is selected. Then enter your desired size, and select "greater than."
  • dertoni
    dertoni over 14 years
    i will try that on my mac at home after work, hopefully i will return with a correct answer
  • Richard Hoskins
    Richard Hoskins over 14 years
    This almost works for me with bash on a Macintosh. I don not get unterminated quote errors, but it breaks with files or folders with spaces in the name.
  • dertoni
    dertoni over 14 years
    @John Rudy, sorry, I don't know how that happens. On my Mac it works.
  • dertoni
    dertoni over 13 years
    mhm... syntactically it has a slightly different meaning. In -k5,5rn the characters mean: k=the following are key definitions; 5,5=beginning and end of key field; r=reverse sorting for this field; n=numerical sorting for this field. In your variant the following meaning is given:-n=global sorting option for all fields; -k=field definitions;5=beginning of field, end is implictly end of line record;r=reverse sorting for this field. The main difference in behaviour is,that by not ending the field definition, sort sorts the records numericaly first and then alphebatically for the rest of the line
  • HikeMike
    HikeMike about 13 years
    Disk Inventory X is similar, and Daisy Disk is a great commercial alternative.
  • cregox
    cregox about 13 years
    @Daniel I just tried DIX once again and it uses so much more memory than GP, and has less features, even though some are unique. I've installed it along with GP and I hardly use it. Now Daisy Disk I gotta try. I don't really like Pie Charts and Ubuntu has a very similar looking disk mapper that I also don't enjoy much. But that Daisy website looks promising.
  • evilsoup
    evilsoup about 11 years
    -1 for parsing ls