How to analyse disk usage in command line linux?

73,077

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.

enter image description here

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.

Share:
73,077

Related videos on Youtube

Jader Dias
Author by

Jader Dias

Perl, Javascript, C#, Go, Matlab and Python Developer

Updated on September 18, 2022

Comments

  • Jader Dias
    Jader Dias almost 2 years

    du and df 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
      SDsolar almost 7 years
      Have you trued ncdu?
  • user5249203
    user5249203 about 13 years
    To view the largest few, you need the -r option on sort.
  • Jader Dias
    Jader Dias about 13 years
    I submitted @RedGrittyBrick suggestion and an error redirection to /dev/null as an edit subject to approval.
  • Valter Silva
    Valter Silva about 11 years
    awesome! the best option for me was ncdu -q, even in ssh.
  • jumpnett
    jumpnett about 11 years
    What does 2> do?
  • Kaustubh Sariputra
    Kaustubh Sariputra over 8 years
    You can use sort -h to sort values with human readable suffixes.
  • Jose B
    Jose B over 8 years
    My modified version of this to display values in human readable format: du -h --max-depth=1 2> /dev/null | sort -h -r
  • Samie Bencherif
    Samie Bencherif over 5 years
    And for OSX du -d 1 -xh 2> /dev/null | sort -h -r | head -n20
  • Daniil Iaitskov
    Daniil Iaitskov almost 3 years
    when will appear in brew? nix?
  • Ярослав Рахматуллин
    Ярослав Рахматуллин almost 3 years
    @DaneelYaitskov Yesterday; cargo install dutree