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 stan-
	     dard  input.  Reading from standard input is only supported 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  being  im-
	     ported.  That is, the refresh, file deletion and shell spawning op-
	     tions 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  export-
	     ing  a directory with many files.	10.000 files will get you an ex-
	     port 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  mil-
	     lions 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 open-
	     ing the browser interface.  If file is '-', the data is written  to
	     standard  output.	The binary format has built-in compression, sup-
	     ports low-memory multi-threaded export (in combination with -t) and
	     can be browsed without importing the  entire  directory  tree  into
	     memory.

     -e, --extended, --no-extended
	     Enable/disable  extended  information mode.  This will, in addition
	     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 information 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 mod-
	     ified 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  di-
	     rectories 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  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 dif-
	     ferent from how hard links are handled.  The exact counting  behav-
	     ior of this flag is subject to change in the future.

     --include-kernfs, --exclude-kernfs
	     (Linux  only) Include (default) or exclude Linux pseudo filesystems
	     such as /proc (procfs) and /sys (sysfs).

	     The complete list of currently known pseudo filesystems is: binfmt,
	     bpf,  cgroup,  cgroup2,  debug,  devpts,  proc,  pstore,  security,
	     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 directory trees.  The
	     binary format (see -O) does not have this problem and supports  ef-
	     ficient exporting with any number of threads.

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

     -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 better com-
	     pression 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  ex-
	     ports.

   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  ini-
	     tialized  until the scan is complete.  When exporting the data with
	     -o, ncurses will not be initialized at all.  This option is the de-
	     fault 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 export-
	     ing 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  op-
	     tion.   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 feed-
	     back 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  seconds
	     with  -q  or  --slow-ui-updates.	This  option can be used to save
	     bandwidth over remote connections.  This option has  no  effect  in
	     combination with -0.

     --enable-shell, --disable-shell
	     Enable  or disable shell spawning from the file browser.  This fea-
	     ture is enabled by default when scanning a live directory and  dis-
	     abled 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  fea-
	     ture 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 directory 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 option 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.   Recog-
	     nized  values  are  hash  to draw ASCII '#' characters (default and
	     most portable), half-block to use half-block drawing characters  or
	     eighth-block  to use eighth-block drawing characters.  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 separate
	     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 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'.

     --delete-command command
	     When set to a non-empty string, replace the built-in file	deletion
	     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  command
	     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 necessary.  This
	     is not a full refresh of the complete directory  tree,  so  if  the
	     item has been renamed or moved to another directory, it's new loca-
	     tion 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  back-
	     grounds  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, 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 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 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 de-
	     scending 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 ex-
	     ist anymore on the filesystem.

     t	     Toggle dirs before files when sorting.

     g	     Toggle  between showing percentage, graph, both, or none.	Percent-
	     age is relative to the size of the current directory, graph is rel-
	     ative to the largest item in the current directory.

     u	     Toggle display of the shared / unique size column	for  directories
	     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.	Requires
	     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  directories,  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 enabled 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  before
	     spawning the shell, allowing you to detect if your shell is running
	     from within ncdu.	This can be useful to avoid nesting multiple in-
	     stances,  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  exclude
	     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 directory
     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 un-
     necessary 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 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 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 assump-
     tion that the link count of hard links does not change during a  filesystem
     scan or in between refreshes.  If this does happen, for example 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 correct 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 incorrect 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.quarterly	 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.1.quarterly>

home | help