How to analyse disk usage in command line linux?
Solution 1
You might also want to try the NCurses Disk Usage aka ncdu
.
Use it like ncdu -x -q
if you're invoking it remotely (e. g. via ssh
) and ncdu -x
otherwise.
ncdu 1.6 ~ Use the arrow keys to navigate, press ? for help
--- /home/geek -----------------------------------------------------------------
27.6MiB /qm test 1 rework
312.0kiB /sidebar
88.0kiB /rackerhacker-MySQLTuner-perl-6add618
8.0kiB /.w3m
4.0kiB /.cache
e 4.0kiB /.ssh
160.0kiB ng.tar.gz
76.0kiB plowshare_1~svn1673-1_all.deb
4.0kiB .bashrc
4.0kiB .bash_history
4.0kiB .profile
4.0kiB .htoprc
4.0kiB .bash_logout
0.0 B .lesshst
This is available under Mac OS X too.
The following flags to the command line might be helpful:
-q Quiet mode, doesn't update the screen 10 times a second
while scanning, reduces network bandwidth used
-x Don't cross filesystem borders (don't descend into a
directory which is a mounted disk)
Thanks to Sorin Sbarnea.
Solution 2
Use some combination of the commands and options:
du --max-depth=1 2> /dev/null | sort -n -r | head -n20
to view only the largest few. If you'd like to use it a lot, then bind it to an alias, e.g. in bash by adding to ~/.bashrc
alias largest='du --max-depth=1 2> /dev/null | sort -n -r | head -n20'
Solution 3
I would like to recommend dutree, which offers a hierachical visualization.
You can select more or less levels of detail, and exclude paths for better control of visualization. You can also compare different paths.
It is implemented in Rust, fast and efficient.
$ dutree -h
Usage: dutree [options] <path> [<path>..]
Options:
-d, --depth [DEPTH] show directories up to depth N (def 1)
-a, --aggr [N[KMG]] aggregate smaller than N B/KiB/MiB/GiB (def 1M)
-s, --summary equivalent to -da, or -d1 -a1M
-u, --usage report real disk usage instead of file size
-b, --bytes print sizes in bytes
-f, --files-only skip directories for a fast local overview
-x, --exclude NAME exclude matching files or directories
-H, --no-hidden exclude hidden files
-A, --ascii ASCII characters only, no colors
-h, --help show help
-v, --version print version number
Solution 4
You probably want xdu
.
du -ax | xdu -n
There's also the more sophisticated KDE-based Filelight.
Solution 5
I usually use
du -hsc * | sort -h
What each option means for du
:
- h: show sizes in human readable format (1K, 1M, 1G, ...)
- s: summarize: display only a total for each argument
- c: also display a grand total
The -h
option on sort
makes it understand the -h
format (human readable) on du
. This option is relatively new on sort
, so maybe your system does not support it and forces you to use du -sc | sort -n
instead.
If you do it on a remote machine and the process takes a long time, you probably want to execute this process backgrounded or inside a screen
or something similar to prevent a connection loss.
Related videos on Youtube
Jader Dias
Perl, Javascript, C#, Go, Matlab and Python Developer
Updated on September 18, 2022Comments
-
Jader Dias almost 2 years
du
anddf
are nice, but I don't know how to filter the data they provide the way I do with SequoiaView. I would like to know which are the largest folders and the largest files in a glance.-
SDsolar almost 7 yearsHave you trued
ncdu
?
-
-
user5249203 about 13 yearsTo view the largest few, you need the
-r
option on sort. -
Jader Dias about 13 yearsI submitted @RedGrittyBrick suggestion and an error redirection to
/dev/null
as an edit subject to approval. -
Valter Silva about 11 yearsawesome! the best option for me was
ncdu -q
, even in ssh. -
jumpnett about 11 yearsWhat does
2>
do? -
Kaustubh Sariputra over 8 yearsYou can use
sort -h
to sort values with human readable suffixes. -
Jose B over 8 yearsMy modified version of this to display values in human readable format:
du -h --max-depth=1 2> /dev/null | sort -h -r
-
Samie Bencherif over 5 yearsAnd for OSX
du -d 1 -xh 2> /dev/null | sort -h -r | head -n20
-
Daniil Iaitskov almost 3 yearswhen will appear in brew? nix?
-
Ярослав Рахматуллин almost 3 years@DaneelYaitskov Yesterday; cargo install dutree