dwww Home | Manual pages | Find package

NCDU(1)                           ncdu manual                          NCDU(1)

NAME
       ncdu - NCurses Disk Usage

SYNOPSIS
       ncdu [options] dir

DESCRIPTION
       ncdu (NCurses Disk Usage) is a curses-based version of the well-known
       'du', 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 ncdu version and quit.

       -f FILE
           Load the given file, which has earlier been created with the "-o"
           option. If FILE is equivalent to "-", the file is read from
           standard 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 being
           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 standard
           output.  See the examples section below for some handy use cases.

           Be warned that the exported data may grow quite large when
           exporting 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.

       -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 will need to
           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
           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, and 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 given "-x".

       --exclude PATTERN
           Exclude files that match PATTERN. The files will still be displayed
           by default, but are not counted towards the disk usage statistics.
           This argument can be added multiple times to add more patterns.

       -X FILE, --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.
           The directories will still be displayed, but their contents will
           not be scanned or counted towards the disk usage statistics.
           <http://www.brynosaurus.com/cachedir/>

       -L, --follow-symlinks, --no-follow-symlinks
           Follow (or not) symlinks and count the size of the file they point
           to. As of ncdu 1.14, this option will not follow symlinks to
           directories and will count each symlinked file as a unique file
           (i.e. unlike how hard links are handled).  This is subject to
           change in later versions.

       --exclude-firmlinks, --follow-firmlinks
           (MacOS only) Exclude or follow firmlinks.

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

           The complete list of currently known pseudo filesystems is: binfmt,
           bpf, cgroup, cgroup2, debug, devpts, proc, pstore, security,
           selinux, sys, trace.

   Interface options
       -0  Don't give any feedback while scanning a directory or importing a
           file, other than 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  Similar to "-0", but does give feedback on the scanning progress
           with a single line of output. 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 probably a
           better choice.

       -2  Provide 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
           will update the screen 10 times a second by default
           ("--fast-ui-updates"), this can be decreased to once every 2
           seconds with "-q" or "--slow-ui-updates". This feature can be used
           to save bandwidth over remote connections. This option has no
           effect when "-0" is used.

       --enable-shell, --disable-shell
           Enable or disable shell spawning from the 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 accidental data loss.

       --enable-refresh, --disable-refresh
           Enable or disable directory refreshing from the 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, that is, powers of 1024 (KiB, MiB,
           etc).

       --disk-usage, --apparent-size
           Select whether to display disk usage (default) or apparent sizes.
           Can also be toggled in the browser with the 'a' key.

       --show-hidden, --hide-hidden
           Show (default) or hide "hidden" and excluded files. Can also be
           toggled in the browser with the 'e' key.

       --show-itemcount, --hide-itemcount
           Show or hide (default) the item counts column. Can also be toggled
           in the browser with the 'c' key.

       --show-mtime, --hide-mtime
           Show or hide (default) the last modification time column. Can also
           be toggled in the 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 browser with the 'g' key.

       --show-percent, --hide-percent
           Show (default) or hide the relative size percent column. Can also
           be toggled in the browser with the 'g' 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 can be suffixed with -asc or -desc to set the order to
           ascending or descending, respectively. e.g. "--sort=name-desc" will
           sort by name in descending order.

       --group-directories-first, --no-group-directories-first
           Sort (or not) directories before files.

       --confirm-quit, --no-confirm-quit
           Require a confirmation before quitting ncdu. Very 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 SCHEME
           Select a 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 dark-bg unless the "NO_COLOR" environment variable
           is set.

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

         # Always enable extended mode
         -e

         # Disable file deletion
         --disable-delete

         # Exclude .git directories
         --exclude .git

KEYS
       ?   Show 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. Percentage
           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. Requires
           the -e flag.

       e   Show/hide 'hidden' or 'excluded' files and directories. Please note
           that even though 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 will determine your preferred shell from the "NCDU_SHELL" or
           "SHELL" variable (in that order), or will call "/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:

             export NCDU_SHELL=vifm
             ncdu

           Ncdu will set the "NCDU_LEVEL" environment variable or increment it
           before spawning the shell. This variable allows you to detect when
           your shell is running from within ncdu, which can be useful to
           avoid nesting multiple instances of ncdu. Ncdu itself does not
           (currently) warn when attempting to run nested instances.

       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

       If you want to scan a full filesystem, your root filesystem, for
       example, then 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- / | 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 any unnecessary 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 you won't consume much
       memory on the remote system.

HARD LINKS
       Every disk usage analysis utility has its own way of (not) counting
       hard links.  There does not seem to be any universally agreed method of
       handling hard links, and it is even inconsistent among different
       versions of ncdu. This section explains what each version of ncdu does.

       ncdu 1.5 and below does not support any hard link detection at all:
       each link is considered a separate inode and its size is counted for
       every link. This means that the displayed directory sizes are incorrect
       when analyzing directories which contain hard links.

       ncdu 1.6 has basic hard link detection: When a link to a previously
       encountered inode is detected, the link is considered to have a file
       size of zero bytes.  Its size is not counted again, and the link is
       indicated in the browser interface with a 'H' mark. The displayed
       directory sizes are only correct when all links to an inode reside
       within that directory. When this is not the case, the sizes may or may
       not be correct, depending on which links were considered as "duplicate"
       and which as "original". The indicated size of the topmost directory
       (that is, the one specified on the command line upon starting ncdu) is
       always correct.

       ncdu 1.7 and later has improved hard link detection. Each file that has
       more than two links has the "H" mark visible in the browser interface.
       Each hard link is counted exactly once for every directory it appears
       in. The indicated size of each directory is therefore, correctly, the
       sum of the sizes of all unique inodes that can be found in that
       directory. Note, however, that this may not always be same as the space
       that will be reclaimed after deleting the directory, as some inodes may
       still be accessible from hard links outside it.

BUGS
       Directory hard links are not supported. They will not be detected as
       being hard links, and will thus be 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 items in a directory with a
       clipped size, the resulting sizes will be incorrect.

       Item counts are stored in a signed 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
       multiple times. Firmlink cycles are currently (1.16) 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

AUTHOR
       Written by Yoran Heling <projects@yorhel.nl>.

SEE ALSO
       du(1)

ncdu-1.18                         2022-11-30                           NCDU(1)

Generated by dwww version 1.15 on Tue Jun 25 08:03:24 CEST 2024.