Credit: Dell The ncdu command provides a useful and convenient way to view disk usage. The name stands for “NCurses disk usage”. This means that it’s based on ncurses which, like curses, is a terminal control library used on Unix/Linux systems. The curses part of each name is a pun on “cursor” or “cursor optimization” and is unrelated to the use of foul language. You can think of ncdu as a disk usage analyzer with an ncurses interface. It can be especially useful when looking for disk-space hogs on a remote server for which you don’t have access to a graphical interface. To use ncdu, you can just type “ncdu”, but what you will see depends on where you have positioned yourself in the file system as it reports the space used by files and directories in that location. $ ncdu ncdu 1.14.1 ~ Use the arrow keys to navigate, press ? for help --- /home/shs ------------------------------------------------------------------ 1.2 GiB [##########] /.cache 242.9 MiB [## ] /Downloads 204.5 MiB [# ] /Desktop 130.4 MiB [# ] XPS 8900-desktop_service-manual.pdf 77.0 MiB [ ] /.mozilla 22.3 MiB [ ] LinuxWords.pdf 12.6 MiB [ ] /myfonts 7.2 MiB [ ] XPS 8900 Desktop Specs.pdf 6.2 MiB [ ] /Documents 4.3 MiB [ ] /.config 3.8 MiB [ ] typescript 3.3 MiB [ ] /bin 2.0 MiB [ ] /Pictures 1.8 MiB [ ] /.local 824.0 KiB [ ] /.GlobalProtect 356.0 KiB [ ] LinuxWorks-2.pdf 332.0 KiB [ ] pavers.png 196.0 KiB [ ] /YardSale 120.0 KiB [ ] paver.jpg 112.0 KiB [ ] /.cinnamon 32.0 KiB [ ] /IDG You can use your up and down arrow keys to move through the displayed files and directories. In fact, if you press the enter key on a listed directory, you’ll move into that directory and be able to view its contents. Then tap on the left arrow key to return to the prior directory. Notice that the files and directories are listed in size order with the largest shown first. In the output above, the .cache file is the largest at 1.2GB. To exit, simply press q. It takes a while for the tool to provide data, especially if you ask it to look at large directories. If you begin at the root directory, for example, the tool will have many more files to examine. When you first start ncdu, you will see something like the following as it runs through the contents of the current directory and looks at each file. lqqqScanning...qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x x x Total items: 148091 size: 6.7 GiB x x Current item: /ubuntu/usr/src/linux-hea...-18/fs/notify/dnotify/Kconfig x x x x Warning: error scanning /ubuntu/etc/sssd x x some directory sizes may not be correct x x x x ... Press q to abort x mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj After a while, it will return your report. 7.1 GiB [###### ] /usr . 1.9 GiB [# ] /home 1.5 GiB [# ] /media . 1.0 GiB [ ] /var . 405.8 MiB [ ] /boot 28.3 MiB [ ] /opt . 16.7 MiB [ ] /etc . 3.3 MiB [ ] /tmp . 1.6 MiB [ ] /run 16.0 KiB [ ] /dev ! 16.0 KiB [ ] /lost+found A help page is available for ncdu as well as a man page. shs@firefly:/$ ncdu --help ncdu -h,--help This help message -q Quiet mode, refresh interval 2 seconds -v,-V,--version Print version -x Same filesystem -e Enable extended information -r Read only -o FILE Export scanned directory to FILE -f FILE Import scanned directory from FILE -0,-1,-2 UI to use when scanning (0=none,2=full ncurses) --si Use base 10 (SI) prefixes instead of base 2 --exclude PATTERN Exclude files that match PATTERN -X, --exclude-from FILE Exclude files that match any pattern in FILE -L, --follow-symlinks Follow symbolic links (excluding directories) --exclude-caches Exclude directories containing CACHEDIR.TAG --confirm-quit Confirm quitting ncdu --color SCHEME Set color scheme Note that the -o option doesn’t prepare a report. Instead, it saves all of the that it collects on each file. For example, you might run a command like this: $ ncdu -o /tmp/dureport When it’s done, your output file will look like this: $ head -11 /tmp/dureport [1,1,{"progname":"ncdu","progver":"1.14.1","timestamp":1639414007}, [{"name":"/home/shs","asize":4096,"dsize":4096,"dev":2067,"ino":39845890}, [{"name":"Pictures","asize":4096,"dsize":4096,"ino":39845933}, {"name":"shs@192.168.0.11","asize":412675,"dsize":413696,"ino":39849638}, {"name":"Screenshot from 2021-07-07 10-19 43.png","asize":80972,"dsize":81920,"ino":39851217}, {"name":"MintDesktop2.png","asize":333930,"dsize":335872,"ino":39849646}, {"name":"Screenshot from 2021-05-12 15-31-40.png","asize":304458,"dsize":307200,"ino":39845894}, {"name":"MintDesktop.png","asize":412675,"dsize":413696,"ino":39846106}, {"name":"Screenshot from 2021-07-07 10-16-54.png","asize":254307,"dsize":258048,"ino":39851211}, {"name":"font-manager.png","asize":253149,"dsize":253952,"ino":39847669}], [{"name":".cache","asize":4096,"dsize":4096,"ino":39845908}, While the output of the ncdu command shows you how used disk space is occupied and what files are using the most disk space, it won’t tell you how much space remains available. Balance its output with the df -h command to put disk usage data back into perspective. $ df -h Filesystem Size Used Avail Use% Mounted on udev 1.7G 0 1.7G 0% /dev tmpfs 340M 1.7M 339M 1% /run /dev/sdb3 903G 19G 838G 3% / tmpfs 1.7G 16K 1.7G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 1.7G 0 1.7G 0% /sys/fs/cgroup /dev/sdb1 511M 5.3M 506M 2% /boot/efi /dev/sdb2 930G 12G 871G 2% /ubuntu tmpfs 340M 24K 340M 1% /run/user/100 Wrap-Up The ncdu command works quickly and provides useful data on disk-space usage. If your file system is filling up, it’s very helpful in determining how that disk space is being used. Related content how-to How to find files on Linux There are many options you can use to find files on Linux, including searching by file name (or partial name), age, owner, group, size, type and inode number. By Sandra Henry Stocker Jun 24, 2024 8 mins Linux opinion Linux in your car: Red Hat’s milestone collaboration with exida With contributions from Red Hat and critical collaborators, the safety and security of automotive vehicles has reached a new level of reliability. By Sandra Henry Stocker Jun 17, 2024 5 mins Linux how-to How to print from the Linux command line: double-sided, landscape and more There's a lot more to printing from the Linux command line than the lp command. Check out some of the many available options. By Sandra Henry Stocker Jun 11, 2024 6 mins Linux how-to Converting between uppercase and lowercase on the Linux command line Converting text between uppercase and lowercase can be very tedious, especially when you want to avoid inadvertent misspellings. Fortunately, Linux provides a handful of commands that can make the job very easy. By Sandra Henry Stocker Jun 07, 2024 5 mins Linux PODCASTS VIDEOS RESOURCES EVENTS NEWSLETTERS Newsletter Promo Module Test Description for newsletter promo module. Please enter a valid email address Subscribe