Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NCDU(1)			    General Commands Manual		       NCDU(1)

NAME
       ncdu -- NCurses Disk Usage

SYNOPSIS
       ncdu  [-f  file]	 [-o  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]   [-t,    --threads	  num]
	    [-c,    --compress,	   --no-compress]    [--compress-level	  num]
	    [--export-block-size	num]	    [-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]
	    [--shared-column   off   |	 shared	  |  unique]  [--sort  column]
	    [--enable-natsort,				    --disable-natsort]
	    [--group-directories-first,		 --no-group-directories-first]
	    [--confirm-quit,				    --no-confirm-quit]
	    [--confirm-delete, --no-confirm-delete] [--delete-command command]
	    [--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
	       or -O flag.  If file is equivalent to '-',  the	file  is  read
	       from  standard input.  Reading from standard input is only sup-
	       ported for the JSON format.

	       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 the directory tree in JSON format	 to  file  instead  of
	       opening	the  browser  interface.   If file is '-', the data is
	       written to standard 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
	       little over 100 KiB when	compressed  with  gzip.	  This	scales
	       linearly, so be prepared	to handle a few	tens of	megabytes when
	       dealing with millions of	files.

	       Consider	enabling -c to output Zstandard-compressed JSON, which
	       can significantly reduce	size of	the exported data.

	       When running a multi-threaded scan or when scanning a directory
	       tree that may not fit in	memory,	consider using -O instead.

       -O file
	       Export  the  directory tree in binary format to file instead of
	       opening the browser interface.  If file is  '-',	 the  data  is
	       written	to  standard  output.	The binary format has built-in
	       compression, supports low-memory	multi-threaded export (in com-
	       bination	with -t) and can be browsed without importing the  en-
	       tire directory tree into	memory.

       -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 in-
	       formation 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
       importing 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 dis-
	       played by default, but are not counted towards the  disk	 usage
	       statistics.   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,  se-
	       curity, selinux,	sys, trace.

       -t, --threads num
	       Number of threads to use	when scanning the filesystem, defaults
	       to 1.

	       In  single-threaded  mode, the JSON export (see -o) can operate
	       with very little	memory,	but in multi-threaded mode the	entire
	       directory  tree	is first constructed in	memory and written out
	       after the filesystem scan has completed,	This causes a delay in
	       output and requires significantly more memory for large	direc-
	       tory  trees.   The  binary  format  (see	-O) does not have this
	       problem and supports efficient exporting	 with  any  number  of
	       threads.

   Export Options
       These  options affect behavior when exporting to	file with the -o or -O
       options.

       -c, --compress, --no-compress
	       Enable or disable Zstandard compression when exporting to  JSON
	       (see -o).

       --compress-level	num
	       Set the Zstandard compression level when	using -O or -c.	 Valid
	       values are 1 (fastest) to 19 (slowest).	Defaults to 4.

       --export-block-size num
	       Set  the	block size, in kibibytes, for the binary export	format
	       (see -O).  Larger blocks	require	more memory but	result in bet-
	       ter compression efficiency.  This option	can be combined	with a
	       higher --compress-level for even	better compression.

	       Accepted	values are between 4 and 16000.	 The  defaults	is  to
	       start  at 64 KiB	and then gradually increase the	block size for
	       large exports.

   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 op-
	       tion 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
	       feature	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 acci-
	       dental 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
	       toggled 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.
	       Recognized  values  are	hash to	draw ASCII '#' characters (de-
	       fault and most portable), half-block to use half-block  drawing
	       characters  or eighth-block to use eighth-block drawing charac-
	       ters.  Eighth-block characters are the most precise but may not
	       render correctly	in all terminals.

       --shared-column off | shared | unique
	       Set to off to disable the shared	size column  for  directories,
	       shared  (default)  to display shared directory sizes as a sepa-
	       rate column or unique to	display	unique directory  sizes	 as  a
	       separate	 column.   These options can also be cycled through in
	       the file	browser	with the 'u' key.

       --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 exam-
	       ple, --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.
	       Enabled by default, but can be disabled	if  you're  absolutely
	       sure you	won't accidentally press 'd'.

       --delete-command	command
	       When set	to a non-empty string, replace the built-in file dele-
	       tion feature with a custom shell	command.

	       The  absolute path of the item to be deleted is appended	to the
	       given command and the result is evaluated in a shell.  The com-
	       mand is run from	 the  same  directory  that  ncdu  itself  was
	       started	in.   The NCDU_DELETE_PATH environment variable	is set
	       to the absolute path of the item	to be deleted  and  NCDU_LEVEL
	       is set in the same fashion as when spawning a shell from	within
	       ncdu.

	       After  command  completion,  the	in-memory view of the selected
	       item is refreshed and directory sizes are  adjusted  as	neces-
	       sary.   This  is	 not  a	full refresh of	the complete directory
	       tree, so	if the item has	been renamed or	moved to  another  di-
	       rectory,	it's new location is not automatically picked up.

	       For  example,  to  use  rm(1) interactive mode to prompt	before
	       each deletion:
		     ncdu --no-confirm-delete --delete-command 'rm -ri --'
	       Or to move files	to trash:
		     ncdu --delete-command 'gio	trash --'

       --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  configuration will be loaded before the user configuration, al-
       lowing users to override	options	set in the system configuration.   Op-
       tions  given  on	the command line will override options set in the con-
       figuration  files.   The	 files	will  not  be	read   at   all	  when
       --ignore-config is given	on the command 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 configu-
       ration 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.

       u       Toggle  display of the shared / unique size column for directo-
	       ries that share hard links.  This column	is only	visible	if the
	       current listing contains	directories with shared	hard links.

       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
	       command	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 be-
	       fore spawning the shell,	allowing you to	detect if  your	 shell
	       is running from within ncdu.  This can be useful	to avoid nest-
	       ing  multiple  instances,  although  ncdu itself	does not (cur-
	       rently) 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 indi-
	       cated 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 di-
       rectory and export the results for later	viewing:

	     ncdu -1xO export.ncdu /
	     # ...some time later:
	     ncdu -f export.ncdu
       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 -co- | tee export.json.zst | ./ncdu -f-

       To scan a system	remotely, but browse through the files locally:
	     ssh user@system ncdu -co- / | ./ncdu -f-
       Remote  scanning	 and  local viewing has	two major advantages when com-
       pared 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  mem-
       ory  when  exporting,  so  this won't consume much memory on the	remote
       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 and	firmlinks (MacOS) 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.

       The unique and shared directory sizes are calculated based on  the  as-
       sumption	 that  the  link  count	of hard	links does not change during a
       filesystem scan or in between refreshes.	 If this does happen, for  ex-
       ample when a hard link is deleted, then these numbers will be very much
       incorrect  and  a full refresh by restarting ncdu is needed to get cor-
       rect numbers again.

       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.
       Likewise, item counts are stored	in a 32-bit integer, so	will be	incor-
       rect  in	the unlikely event that	you happen to have more	than 4 billion
       items in	a directory.

       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

FreeBSD	ports 15.0		August 16, 2025			       NCDU(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=ncdu2&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help