How do I list all the files in a directory and their recursive file sizes?
---edit
I want to see the sizes 'rolled up' to the parent directories in the directory listed. I don't want to see the child directories or their contents or sizes.
How do I list all the files in a directory and their recursive file sizes?
---edit
I want to see the sizes 'rolled up' to the parent directories in the directory listed. I don't want to see the child directories or their contents or sizes.
It is interactive too so if you want to check on a sub folder just UP, DOWN, and Enter to it.
I guess the easiest way is by typing
ls -l
, orls -lh
which will provide the file size in human-readable format (KB, MB, etc).If 'recursively' means listing all the subsequent folders, e.g.:
/foo/
/foo/bar/ ....
Then you should also add parameter
R
, likels -lR
orls -lhR
More information for
ls
can be found by typingman ls
Update:
The following command as Lekensteyn proposed will probably do the job:
du -h --max-depth=1 <folder>
-h
is for human-readable--apparent-size
is another way to display sizes as already stated--max-depth
is the level of subfolders you want to go down to.To get the total size of a directory and all children
Also check out
tree
. It is not installed by default but is the repositories.Example:
More options can be found in the man page.
Since you don't specifically mention you need a terminal-based solution, I think baobab a.k.a. Disk Usage Analyzer is missing from the list.
It is installed in Ubuntu by default and does exactly what you want in a nice graphical UI with the ability to drill down the directory hierarchy.
Apart from displaying a list of directories with their sizes, it is also showing a rings or treemap chart of filesystem usage, which is extremely useful for visualising the directories which take up the most space.
A terminal solution is the
du
command:(shorthand:
du -ah --apparent-size
)du
displays the disk usage for each file and directory. The options explained:--all
,-a
- show sizes for files as well, not just directories--human-readable
,-h
- show sizes in a human readable format, e.g.10K
(10 kilobytes),10
(10 bytes)--apparent-size
- show the actual file size, not the sizes as used by the disk.This seems to do the trick when simlinks are involved.
To get a sorted list put everything in MB and sort :
Or use tool such as DiskReport to generate a report of full disk tree.
Another terminal solution with
find
and sort (by filesize, column 1)I like the following approach:
where:
s
: display only a total for each argumentc
: produce a grand totalh
: print sizes in a human-readable formatx
: skip directories on different file systems.[!.]* *
: Summarize disk usage of each file, recursively for directories (including "hidden" ones)| sort -h
: Sort based on human-readable numbers (e.g., 2K 1G)