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]
	    [--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'.

       --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.	Example	 configuration
       file:

	     # Always enable extended mode
	     -e

	     # Disable file deletion
	     --disable-delete

	     # Exclude .git directories
	     --exclude .git

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 14.quarterly     November	19, 2024		       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+14.3.quarterly>

home | help