NCDU(1) General Commands Manual NCDU(1)
NAME
ncdu — NCurses Disk Usage
SYNOPSIS
ncdu [-f file] [-o file] [-e, --extended, --no-extended]
[--ignore-config] [-x, --one-file-system, --cross-file-system]
[--exclude pattern] [-X, --exclude-from file]
[--include-caches, --exclude-caches]
[-L, --follow-symlinks, --no-follow-symlinks]
[--include-kernfs, --exclude-kernfs]
[--exclude-firmlinks, --follow-firmlinks] [-0, -1, -2]
[-q, --slow-ui-updates, --fast-ui-updates]
[--enable-shell, --disable-shell]
[--enable-delete, --disable-delete]
[--enable-refresh, --disable-refresh] [-r] [--si, --no-si]
[--disk-usage, --apparent-size] [--show-hidden, --hide-hidden]
[--show-itemcount, --hide-itemcount] [--show-mtime, --hide-mtime]
[--show-graph, --hide-graph] [--show-percent, --hide-percent]
[--graph-style hash | half-block | eighth-block] [--sort column]
[--enable-natsort, --disable-natsort]
[--group-directories-first, --no-group-directories-first]
[--confirm-quit, --no-confirm-quit]
[--confirm-delete, --no-confirm-delete]
[--color off | dark | dark-bg] [path]
ncdu [-h, --help]
ncdu [-v, -V, --version]
DESCRIPTION
ncdu (NCurses Disk Usage) is an interactive curses-based version of the
well-known du(1), and provides a fast way to see what directories are
using your disk space.
OPTIONS
Mode Selection
-h, --help
Print a short help message and quit.
-v, -V, --version
Print version and quit.
-f file
Load the given file, which has earlier been created with the -o
flag. If file is equivalent to '-', the file is read from stan-
dard input.
For the sake of preventing a screw-up, the current version of
ncdu will assume that the directory information in the imported
file does not represent the filesystem on which the file is be-
ing imported. That is, the refresh, file deletion and shell
spawning options in the browser will be disabled.
dir Scan the given directory.
-o file
Export all necessary information to file instead of opening the
browser interface. If file is '-', the data is written to stan-
dard output. See the examples section below for some handy use
cases.
Be warned that the exported data may grow quite large when ex-
porting a directory with many files. 10.000 files will get you
an export in the order of 600 to 700 KiB uncompressed, or a lit-
tle over 100 KiB when compressed with gzip. This scales lin-
early, so be prepared to handle a few tens of megabytes when
dealing with millions of files.
-e, --extended, --no-extended
Enable/disable extended information mode. This will, in addi-
tion to the usual file information, also read the ownership,
permissions and last modification time for each file. This will
result in higher memory usage (by roughly ~30%) and in a larger
output file when exporting.
When using the file export/import function, this flag should be
added both when exporting (to make sure the information is added
to the export) and when importing (to read this extra informa-
tion in memory). This flag has no effect when importing a file
that has been exported without the extended information.
This enables viewing and sorting by the latest child mtime, or
modified time, using 'm' and 'M', respectively.
--ignore-config
Do not attempt to load any configuration files.
Scan Options
These options affect the scanning progress, they have no effect when im-
porting directory information from a file.
-x, --one-file-system
Do not cross filesystem boundaries, i.e. only count files and
directories on the same filesystem as the directory being
scanned.
--cross-file-system
Do cross filesystem boundaries. This is the default, but can be
specified to overrule a previously configured -x.
--exclude pattern
Exclude files that match pattern. The files are still displayed
by default, but are not counted towards the disk usage statis-
tics. This argument can be added multiple times to add more
patterns.
-X, --exclude-from file
Exclude files that match any pattern in file. Patterns should
be separated by a newline.
--include-caches, --exclude-caches
Include (default) or exclude directories containing
CACHEDIR.TAG. Excluded cache directories are still displayed,
but their contents will not be scanned or counted towards the
disk usage statistics. https://bford.info/cachedir/
-L, --follow-symlinks, --no-follow-symlinks
Follow (or not) symlinks and count the size of the file they
point to. This option does not follow symlinks to directories
and will cause each symlinked file to count as a unique file.
This is different from how hard links are handled. The exact
counting behavior of this flag is subject to change in the fu-
ture.
--include-kernfs, --exclude-kernfs
(Linux only) Include (default) or exclude Linux pseudo filesys-
tems such as /proc (procfs) and /sys (sysfs).
The complete list of currently known pseudo filesystems is:
binfmt, bpf, cgroup, cgroup2, debug, devpts, proc, pstore, secu-
rity, selinux, sys, trace.
--exclude-firmlinks, --follow-firmlinks
(MacOS only) Exclude or follow firmlinks.
Interface Options
-0 Don't give any feedback while scanning a directory or importing
a file, except when a fatal error occurs. Ncurses will not be
initialized until the scan is complete. When exporting the data
with -o, ncurses will not be initialized at all. This option is
the default when exporting to standard output.
-1 Write progress information to the terminal, but don't open a
full-screen ncurses interface. This option is the default when
exporting to a file.
In some cases, the ncurses browser interface which you'll see
after the scan/import is complete may look garbled when using
this option. If you're not exporting to a file, -2 is usually a
better choice.
-2 Show a full-screen ncurses interface while scanning a directory
or importing a file. This is the only interface that provides
feedback on any non-fatal errors while scanning.
-q, --slow-ui-updates, --fast-ui-updates
Change the UI update interval while scanning or importing. ncdu
updates the screen 10 times a second by default (with
--fast-ui-updates ), this can be decreased to once every 2 sec-
onds with -q or --slow-ui-updates. This option can be used to
save bandwidth over remote connections. This option has no ef-
fect in combination with -0.
--enable-shell, --disable-shell
Enable or disable shell spawning from the file browser. This
feature is enabled by default when scanning a live directory and
disabled when importing from file.
--enable-delete, --disable-delete
Enable or disable the built-in file deletion feature. This fea-
ture is enabled by default when scanning a live directory and
disabled when importing from file. Explicitly disabling the
deletion feature can work as a safeguard to prevent accidental
data loss.
--enable-refresh, --disable-refresh
Enable or disable directory refreshing from the file browser.
This feature is enabled by default when scanning a live direc-
tory and disabled when importing from file.
-r Read-only mode. When given once, this is an alias for
--disable-delete, when given twice it will also add
--disable-shell, thus ensuring that there is no way to modify
the file system from within ncdu.
--si, --no-si
List sizes using base 10 prefixes, that is, powers of 1000 (kB,
MB, etc), as defined in the International System of Units (SI),
instead of the usual base 2 prefixes (KiB, MiB, etc).
--disk-usage, --apparent-size
Select whether to display disk usage (default) or apparent
sizes. Can also be toggled in the file browser with the 'a'
key.
--show-hidden, --hide-hidden
Show (default) or hide "hidden" and excluded files. Can also be
toggled in the file browser with the 'e' key.
--show-itemcount, --hide-itemcount
Show or hide (default) the item counts column. Can also be tog-
gled in the file browser with the 'c' key.
--show-mtime, --hide-mtime
Show or hide (default) the last modification time column. Can
also be toggled in the file browser with the 'm' key. This op-
tion is ignored when not in extended mode, see -e.
--show-graph, --hide-graph
Show (default) or hide the relative size bar column. Can also
be toggled in the file browser with the 'g' key.
--show-percent, --hide-percent
Show (default) or hide the relative size percent column. Can
also be toggled in the file browser with the 'g' key.
--graph-style hash | half-block | eighth-block
Change the way that the relative size bar column is drawn. Rec-
ognized values are hash to draw ASCII '#' characters (default
and most portable), half-block to use half-block drawing charac-
ters or eighth-block to use eighth-block drawing characters.
Eighth-block characters are the most precise but may not render
correctly in all terminals.
--sort column
Change the default column to sort on. Accepted values are
disk-usage (the default), name, apparent-size, itemcount or
mtime. The latter only makes sense in extended mode, see -e.
The column name can be suffixed with -asc or -desc to change the
order to ascending or descending, respectively. For example,
--sort=name-desc to sort by name in descending order.
--enable-natsort, --disable-natsort
Enable (default) or disable natural sort when sorting by file
name.
--group-directories-first, --no-group-directories-first
Sort (or not) directories before files.
--confirm-quit, --no-confirm-quit
Require a confirmation before quitting ncdu. Can be helpful
when you accidentally press 'q' during or after a very long
scan.
--confirm-delete, --no-confirm-delete
Require a confirmation before deleting a file or directory. En-
abled by default, but can be disabled if you're absolutely sure
you won't accidentally press 'd'.
--color off | dark | dark-bg
Set the color scheme. The following schemes are recognized: off
to disable colors, dark for a color scheme intended for dark
backgrounds and dark-bg for a variation of the dark color scheme
that also works in terminals with a light background.
The default is off.
CONFIGURATION
ncdu can be configured by placing command-line options in /etc/ncdu.conf
or $HOME/.config/ncdu/config. If both files exist, the system configu-
ration will be loaded before the user configuration, allowing users to
override options set in the system configuration. Options given on the
command line will override options set in the configuration files. The
files will not be read at all when --ignore-config is given on the com-
mand line.
The configuration file format is simply one command line option per
line. Lines starting with '#' are ignored. A line can be prefixed with
'@' to suppress errors while parsing the option. Example configuration
file:
# Always enable extended mode
-e
# Disable file deletion
--disable-delete
# Exclude .git directories
--exclude .git
# Read excludes from ~/.ncduexcludes, ignore error if the file does not exist
@--exclude-from ~/.ncduexcludes
KEYS
? Open help + keys + about screen
up, down, j, k
Cycle through the items
right, enter, l
Open selected directory
left, <, h
Go to parent directory
n Order by filename (press again for descending order)
s Order by filesize (press again for descending order)
C Order by number of items (press again for descending order)
a Toggle between showing disk usage and showing apparent size.
M Order by latest child mtime, or modified time (press again for
descending order). Requires the -e flag.
d Delete the selected file or directory. An error message will be
shown when the contents of the directory do not match or do not
exist anymore on the filesystem.
t Toggle dirs before files when sorting.
g Toggle between showing percentage, graph, both, or none. Per-
centage is relative to the size of the current directory, graph
is relative to the largest item in the current directory.
c Toggle display of child item counts.
m Toggle display of latest child mtime, or modified time. Re-
quires the -e flag.
e Show/hide 'hidden' or 'excluded' files and directories. Be
aware that even if you can't see the hidden files and directo-
ries, they are still there and they are still included in the
directory sizes. If you suspect that the totals shown at the
bottom of the screen are not correct, make sure you haven't en-
abled this option.
i Show information about the current selected item.
r Refresh/recalculate the current directory.
b Spawn shell in current directory.
ncdu determines your preferred shell from the NCDU_SHELL or
SHELL environment variable (in that order), or calls /bin/sh if
neither are set. This allows you to also configure another com-
mand to be run when he 'b' key is pressed. For example, to
spawn the vifm(1) file manager instead of a shell, run ncdu as
follows:
NCDU_SHELL=vifm ncdu
The NCDU_LEVEL environment variable is set or incremented before
spawning the shell, allowing you to detect if your shell is run-
ning from within ncdu. This can be useful to avoid nesting mul-
tiple instances, although ncdu itself does not (currently) warn
about or prevent this situation.
q Quit
FILE FLAGS
Entries in the browser interface may be prefixed by a one-character
flag. These flags have the following meaning:
! An error occurred while reading this directory.
. An error occurred while reading a subdirectory, so the indicated
size may not be correct.
< File or directory is excluded from the statistics by using ex-
clude patterns.
> Directory is on another filesystem.
^ Directory is excluded from the statistics due to being a Linux
pseudo filesystem.
@ This is neither a file nor a folder (symlink, socket, ...).
H Same file was already counted (hard link).
e Empty directory.
EXAMPLES
To scan and browse the directory you're currently in, all you need is a
simple:
ncdu
To scan a full filesystem, for example your root filesystem, you'll want
to use -x:
ncdu -x /
Since scanning a large directory may take a while, you can scan a direc-
tory and export the results for later viewing:
ncdu -1xo- / | gzip >export.gz
# ...some time later:
zcat export.gz | ncdu -f-
To export from a cron job, make sure to replace -1 with -0 to suppress
unnecessary progress output.
You can also export a directory and browse it once scanning is done:
ncdu -o- | tee export.file | ./ncdu -f-
The same is possible with gzip compression, but is a bit kludgey:
ncdu -o- | gzip | tee export.gz | gunzip | ./ncdu -f-
To scan a system remotely, but browse through the files locally:
ssh -C user@system ncdu -o- / | ./ncdu -f-
The -C option to ssh enables compression, which will be very useful over
slow links. Remote scanning and local viewing has two major advantages
when compared to running ncdu directly on the remote system: You can
browse through the scanned directory on the local system without any
network latency, and ncdu does not keep the entire directory structure
in memory when exporting, so this won't consume much memory on the re-
mote system.
SEE ALSO
du(1), tree(1).
ncdu has a website: https://dev.yorhel.nl/ncdu
AUTHORS
Written by Yorhel <projects@yorhel.nl>
BUGS
Directory hard links are not supported. They are not detected as being
hard links, and will thus get scanned and counted multiple times.
Some minor glitches may appear when displaying filenames that contain
multibyte or multicolumn characters.
All sizes are internally represented as a signed 64bit integer. If you
have a directory larger than 8 EiB minus one byte, ncdu will clip its
size to 8 EiB minus one byte. When deleting or refreshing items in a
directory with a clipped size, the resulting sizes will be incorrect.
Item counts are stored in a 32-bit integer without overflow detection.
If you have a directory with more than 2 billion files, quite literally
anything can happen.
On macOS 10.15 and later, running ncdu on the root directory without
--exclude-firmlinks may cause directories to be scanned and counted mul-
tiple times. Firmlink cycles are not detected, so it may also cause
ncdu to get stuck in an infinite loop and eventually run out of memory.
Please report any other bugs you may find at the bug tracker, which can
be found on the web site at https://dev.yorhel.nl/ncdu
Debian March 5, 2025 NCDU(1)
Generated by dwww version 1.16 on Tue Dec 16 06:23:58 CET 2025.