#### 510 lines 19 KiB Groff Raw Blame History

 ```.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) ``` ```.\" ``` ```.\" Standard preamble: ``` ```.\" ======================================================================== ``` ```.de Sp \" Vertical space (when we can't use .PP) ``` ```.if t .sp .5v ``` ```.if n .sp ``` ```.. ``` ```.de Vb \" Begin verbatim text ``` ```.ft CW ``` ```.nf ``` ```.ne \\\$1 ``` ```.. ``` ```.de Ve \" End verbatim text ``` ```.ft R ``` ```.fi ``` ```.. ``` ```.\" Set up some character translations and predefined strings. \*(-- will ``` ```.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left ``` ```.\" double quote, and \*(R" will give a right double quote. \*(C+ will ``` ```.\" give a nicer C++. Capital omega is used to do unbreakable dashes and ``` ```.\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, ``` ```.\" nothing in troff, for use with C<>. ``` ```.tr \(*W- ``` ```.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' ``` ```.ie n \{\ ``` ```. ds -- \(*W- ``` ```. ds PI pi ``` ```. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch ``` ```. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch ``` ```. ds L" "" ``` ```. ds R" "" ``` ```. ds C` "" ``` ```. ds C' "" ``` ```'br\} ``` ```.el\{\ ``` ```. ds -- \|\(em\| ``` ```. ds PI \(*p ``` ```. ds L" `` ``` ```. ds R" '' ``` ```. ds C` ``` ```. ds C' ``` ```'br\} ``` ```.\" ``` ```.\" Escape single quotes in literal strings from groff's Unicode transform. ``` ```.ie \n(.g .ds Aq \(aq ``` ```.el .ds Aq ' ``` ```.\" ``` ```.\" If the F register is >0, we'll generate index entries on stderr for ``` ```.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index ``` ```.\" entries marked with X<> in POD. Of course, you'll have to process the ``` ```.\" output yourself in some meaningful fashion. ``` ```.\" ``` ```.\" Avoid warning from groff about undefined register 'F'. ``` ```.de IX ``` ```.. ``` ```.nr rF 0 ``` ```.if \n(.g .if rF .nr rF 1 ``` ```.if (\n(rF:(\n(.g==0)) \{\ ``` ```. if \nF \{\ ``` ```. de IX ``` ```. tm Index:\\\$1\t\\n%\t"\\\$2" ``` ```.. ``` ```. if !\nF==2 \{\ ``` ```. nr % 0 ``` ```. nr F 2 ``` ```. \} ``` ```. \} ``` ```.\} ``` ```.rr rF ``` ```.\" ``` ```.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). ``` ```.\" Fear. Run. Save yourself. No user-serviceable parts. ``` ```. \" fudge factors for nroff and troff ``` ```.if n \{\ ``` ```. ds #H 0 ``` ```. ds #V .8m ``` ```. ds #F .3m ``` ```. ds #[ \f1 ``` ```. ds #] \fP ``` ```.\} ``` ```.if t \{\ ``` ```. ds #H ((1u-(\\\\n(.fu%2u))*.13m) ``` ```. ds #V .6m ``` ```. ds #F 0 ``` ```. ds #[ \& ``` ```. ds #] \& ``` ```.\} ``` ```. \" simple accents for nroff and troff ``` ```.if n \{\ ``` ```. ds ' \& ``` ```. ds ` \& ``` ```. ds ^ \& ``` ```. ds , \& ``` ```. ds ~ ~ ``` ```. ds / ``` ```.\} ``` ```.if t \{\ ``` ```. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" ``` ```. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' ``` ```. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' ``` ```. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' ``` ```. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' ``` ```. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' ``` ```.\} ``` ```. \" troff and (daisy-wheel) nroff accents ``` ```.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' ``` ```.ds 8 \h'\*(#H'\(*b\h'-\*(#H' ``` ```.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] ``` ```.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' ``` ```.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' ``` ```.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] ``` ```.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] ``` ```.ds ae a\h'-(\w'a'u*4/10)'e ``` ```.ds Ae A\h'-(\w'A'u*4/10)'E ``` ```. \" corrections for vroff ``` ```.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' ``` ```.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' ``` ```. \" for low resolution devices (crt and lpr) ``` ```.if \n(.H>23 .if \n(.V>19 \ ``` ```\{\ ``` ```. ds : e ``` ```. ds 8 ss ``` ```. ds o a ``` ```. ds d- d\h'-1'\(ga ``` ```. ds D- D\h'-1'\(hy ``` ```. ds th \o'bp' ``` ```. ds Th \o'LP' ``` ```. ds ae ae ``` ```. ds Ae AE ``` ```.\} ``` ```.rm #[ #] #H #V #F C ``` ```.\" ======================================================================== ``` ```.\" ``` ```.IX Title "NCDU 1" ``` ```.TH NCDU 1 "2021-07-22" "ncdu-2.0" "ncdu manual" ``` ```.\" For nroff, turn off justification. Always turn off hyphenation; it makes ``` ```.\" way too many mistakes in technical documents. ``` ```.if n .ad l ``` ```.nh ``` ```.SH "NAME" ``` ```ncdu \- NCurses Disk Usage ``` ```.SH "SYNOPSIS" ``` ```.IX Header "SYNOPSIS" ``` ```\&\fBncdu\fR [\fIoptions\fR] \fIdir\fR ``` ```.SH "DESCRIPTION" ``` ```.IX Header "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. ``` ```.SH "OPTIONS" ``` ```.IX Header "OPTIONS" ``` ```.SS "Mode Selection" ``` ```.IX Subsection "Mode Selection" ``` ```.IP "\-h, \-\-help" 4 ``` ```.IX Item "-h, --help" ``` ```Print a short help message and quit. ``` ```.IP "\-v, \-V, \-\-version" 4 ``` ```.IX Item "-v, -V, --version" ``` ```Print ncdu version and quit. ``` ```.IP "\-f \fI\s-1FILE\s0\fR" 4 ``` ```.IX Item "-f FILE" ``` ```Load the given file, which has earlier been created with the \f(CW\*(C`\-o\*(C'\fR option. If ``` ```\&\fI\s-1FILE\s0\fR is equivalent to \f(CW\*(C`\-\*(C'\fR, the file is read from standard input. ``` ```.Sp ``` ```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. ``` ```.IP "\fIdir\fR" 4 ``` ```.IX Item "dir" ``` ```Scan the given directory. ``` ```.IP "\-o \fI\s-1FILE\s0\fR" 4 ``` ```.IX Item "-o FILE" ``` ```Export all necessary information to \fI\s-1FILE\s0\fR instead of opening the browser ``` ```interface. If \fI\s-1FILE\s0\fR is \f(CW\*(C`\-\*(C'\fR, the data is written to standard output. See the ``` ```examples section below for some handy use cases. ``` ```.Sp ``` ```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. ``` ```.IP "\-e" 4 ``` ```.IX Item "-e" ``` ```Enable 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. ``` ```.Sp ``` ```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. ``` ```.Sp ``` ```This enables viewing and sorting by the latest child mtime, or modified time, ``` ```using 'm' and 'M', respectively. ``` ```.SS "Interface options" ``` ```.IX Subsection "Interface options" ``` ```.IP "\-0" 4 ``` ```.IX Item "-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 \f(CW\*(C`\-o\*(C'\fR, ncurses will not be ``` ```initialized at all. This option is the default when exporting to standard ``` ```output. ``` ```.IP "\-1" 4 ``` ```.IX Item "-1" ``` ```Similar to \f(CW\*(C`\-0\*(C'\fR, but does give feedback on the scanning progress with a single ``` ```line of output. This option is the default when exporting to a file. ``` ```.Sp ``` ```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, \f(CW\*(C`\-2\*(C'\fR is probably a better choice. ``` ```.IP "\-2" 4 ``` ```.IX Item "-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. ``` ```.IP "\-q" 4 ``` ```.IX Item "-q" ``` ```Quiet mode. While scanning or importing the directory, ncdu will update the ``` ```screen 10 times a second by default, this will be decreased to once every 2 ``` ```seconds in quiet mode. Use this feature to save bandwidth over remote ``` ```connections. This option has no effect when \f(CW\*(C`\-0\*(C'\fR is used. ``` ```.IP "\-r" 4 ``` ```.IX Item "-r" ``` ```Read-only mode. This will disable the built-in file deletion feature. This ``` ```option has no effect when \f(CW\*(C`\-o\*(C'\fR is used, because there will not be a browser ``` ```interface in that case. It has no effect when \f(CW\*(C`\-f\*(C'\fR is used, either, because ``` ```the deletion feature is disabled in that case anyway. ``` ```.Sp ``` ```\&\s-1WARNING:\s0 This option will only prevent deletion through the file browser. It is ``` ```still possible to spawn a shell from ncdu and delete or modify files from ``` ```there. To disable that feature as well, pass the \f(CW\*(C`\-r\*(C'\fR option twice (see ``` ```\&\f(CW\*(C`\-rr\*(C'\fR). ``` ```.IP "\-rr" 4 ``` ```.IX Item "-rr" ``` ```In addition to \f(CW\*(C`\-r\*(C'\fR, this will also disable the shell spawning feature of the ``` ```file browser. ``` ```.IP "\-\-si" 4 ``` ```.IX Item "--si" ``` ```List sizes using base 10 prefixes, that is, powers of 1000 (\s-1KB, MB,\s0 etc), as ``` ```defined in the International System of Units (\s-1SI\s0), instead of the usual base 2 ``` ```prefixes, that is, powers of 1024 (KiB, MiB, etc). ``` ```.IP "\-\-confirm\-quit" 4 ``` ```.IX Item "--confirm-quit" ``` ```Requires a confirmation before quitting ncdu. Very helpful when you ``` ```accidentally press 'q' during or after a very long scan. ``` ```.IP "\-\-color \fI\s-1SCHEME\s0\fR" 4 ``` ```.IX Item "--color SCHEME" ``` ```Select a color scheme. Currently only two schemes are recognized: \fIoff\fR to ``` ```disable colors (the default) and \fIdark\fR for a color scheme intended for dark ``` ```backgrounds. ``` ```.SS "Scan Options" ``` ```.IX Subsection "Scan Options" ``` ```These options affect the scanning progress, and have no effect when importing ``` ```directory information from a file. ``` ```.IP "\-x" 4 ``` ```.IX Item "-x" ``` ```Do not cross filesystem boundaries, i.e. only count files and directories on ``` ```the same filesystem as the directory being scanned. ``` ```.IP "\-\-exclude \fI\s-1PATTERN\s0\fR" 4 ``` ```.IX Item "--exclude PATTERN" ``` ```Exclude files that match \fI\s-1PATTERN\s0\fR. 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. ``` ```.IP "\-X \fI\s-1FILE\s0\fR, \-\-exclude\-from \fI\s-1FILE\s0\fR" 4 ``` ```.IX Item "-X FILE, --exclude-from FILE" ``` ```Exclude files that match any pattern in \fI\s-1FILE\s0\fR. Patterns should be separated ``` ```by a newline. ``` ```.IP "\-\-exclude\-caches" 4 ``` ```.IX Item "--exclude-caches" ``` ```Exclude directories containing \s-1CACHEDIR.TAG.\s0 The directories will still be ``` ```displayed, but not their content, and they are not counted towards the disk ``` ```usage statistics. ``` ```See http://www.brynosaurus.com/cachedir/ ``` ```.IP "\-L, \-\-follow\-symlinks" 4 ``` ```.IX Item "-L, --follow-symlinks" ``` ```Follow 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. ``` ```.IP "\-\-exclude\-firmlinks" 4 ``` ```.IX Item "--exclude-firmlinks" ``` ```(MacOS only) Exclude firmlinks. ``` ```.IP "\-\-exclude\-kernfs" 4 ``` ```.IX Item "--exclude-kernfs" ``` ```(Linux only) Exclude Linux pseudo filesystems, e.g. /proc (procfs), /sys (sysfs). ``` ```.Sp ``` ```The complete list of currently known pseudo filesystems is: binfmt, bpf, cgroup, ``` ```cgroup2, debug, devpts, proc, pstore, security, selinux, sys, trace. ``` ```.SH "KEYS" ``` ```.IX Header "KEYS" ``` ```.IP "?" 4 ``` ```Show help + keys + about screen ``` ```.IP "up, down j, k" 4 ``` ```.IX Item "up, down j, k" ``` ```Cycle through the items ``` ```.IP "right, enter, l" 4 ``` ```.IX Item "right, enter, l" ``` ```Open selected directory ``` ```.IP "left, <, h" 4 ``` ```.IX Item "left, <, h" ``` ```Go to parent directory ``` ```.IP "n" 4 ``` ```.IX Item "n" ``` ```Order by filename (press again for descending order) ``` ```.IP "s" 4 ``` ```.IX Item "s" ``` ```Order by filesize (press again for descending order) ``` ```.IP "C" 4 ``` ```.IX Item "C" ``` ```Order by number of items (press again for descending order) ``` ```.IP "a" 4 ``` ```.IX Item "a" ``` ```Toggle between showing disk usage and showing apparent size. ``` ```.IP "M" 4 ``` ```.IX Item "M" ``` ```Order by latest child mtime, or modified time. (press again for descending order) ``` ```Requires the \-e flag. ``` ```.IP "d" 4 ``` ```.IX Item "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. ``` ```.IP "t" 4 ``` ```.IX Item "t" ``` ```Toggle dirs before files when sorting. ``` ```.IP "g" 4 ``` ```.IX Item "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. ``` ```.IP "c" 4 ``` ```.IX Item "c" ``` ```Toggle display of child item counts. ``` ```.IP "m" 4 ``` ```.IX Item "m" ``` ```Toggle display of latest child mtime, or modified time. Requires the \-e flag. ``` ```.IP "e" 4 ``` ```.IX Item "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. ``` ```.IP "i" 4 ``` ```.IX Item "i" ``` ```Show information about the current selected item. ``` ```.IP "r" 4 ``` ```.IX Item "r" ``` ```Refresh/recalculate the current directory. ``` ```.IP "b" 4 ``` ```.IX Item "b" ``` ```Spawn shell in current directory. ``` ```.Sp ``` ```Ncdu will determine your preferred shell from the \f(CW\*(C`NCDU_SHELL\*(C'\fR or \f(CW\*(C`SHELL\*(C'\fR ``` ```variable (in that order), or will call \f(CW\*(C`/bin/sh\*(C'\fR 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 \fBvifm\fR\|(1) file manager instead of a shell, ``` ```run ncdu as follows: ``` ```.Sp ``` ```.Vb 2 ``` ```\& export NCDU_SHELL=vifm ``` ```\& ncdu ``` ```.Ve ``` ```.Sp ``` ```Ncdu will set the \f(CW\*(C`NCDU_LEVEL\*(C'\fR 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. ``` ```.IP "q" 4 ``` ```.IX Item "q" ``` ```Quit ``` ```.SH "FILE FLAGS" ``` ```.IX Header "FILE FLAGS" ``` ```Entries in the browser interface may be prefixed by a one-character flag. These ``` ```flags have the following meaning: ``` ```.IP "!" 4 ``` ```An error occurred while reading this directory. ``` ```.IP "." 4 ``` ```An error occurred while reading a subdirectory, so the indicated size may not be ``` ```correct. ``` ```.IP "<" 4 ``` ```File or directory is excluded from the statistics by using exclude patterns. ``` ```.IP ">" 4 ``` ```Directory is on another filesystem. ``` ```.IP "^" 4 ``` ```Directory is excluded from the statistics due to being a Linux pseudo filesystem. ``` ```.IP "@" 4 ``` ```This is neither a file nor a folder (symlink, socket, ...). ``` ```.IP "H" 4 ``` ```.IX Item "H" ``` ```Same file was already counted (hard link). ``` ```.IP "e" 4 ``` ```.IX Item "e" ``` ```Empty directory. ``` ```.SH "EXAMPLES" ``` ```.IX Header "EXAMPLES" ``` ```To scan and browse the directory you're currently in, all you need is a simple: ``` ```.PP ``` ```.Vb 1 ``` ```\& ncdu ``` ```.Ve ``` ```.PP ``` ```If you want to scan a full filesystem, your root filesystem, for example, then ``` ```you'll want to use \f(CW\*(C`\-x\*(C'\fR: ``` ```.PP ``` ```.Vb 1 ``` ```\& ncdu \-x / ``` ```.Ve ``` ```.PP ``` ```Since scanning a large directory may take a while, you can scan a directory and ``` ```export the results for later viewing: ``` ```.PP ``` ```.Vb 3 ``` ```\& ncdu \-1xo\- / | gzip >export.gz ``` ```\& # ...some time later: ``` ```\& zcat export.gz | ncdu \-f\- ``` ```.Ve ``` ```.PP ``` ```To export from a cron job, make sure to replace \f(CW\*(C`\-1\*(C'\fR with \f(CW\*(C`\-0\*(C'\fR to suppress ``` ```any unnecessary output. ``` ```.PP ``` ```You can also export a directory and browse it once scanning is done: ``` ```.PP ``` ```.Vb 1 ``` ```\& ncdu \-o\- | tee export.file | ./ncdu \-f\- ``` ```.Ve ``` ```.PP ``` ```The same is possible with gzip compression, but is a bit kludgey: ``` ```.PP ``` ```.Vb 1 ``` ```\& ncdu \-o\- | gzip | tee export.gz | gunzip | ./ncdu \-f\- ``` ```.Ve ``` ```.PP ``` ```To scan a system remotely, but browse through the files locally: ``` ```.PP ``` ```.Vb 1 ``` ```\& ssh \-C user@system ncdu \-o\- / | ./ncdu \-f\- ``` ```.Ve ``` ```.PP ``` ```The \f(CW\*(C`\-C\*(C'\fR 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. ``` ```.SH "HARD LINKS" ``` ```.IX Header "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. ``` ```.PP ``` ```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. ``` ```.PP ``` ```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 \*(L"duplicate\*(R" and which as \*(L"original\*(R". The indicated size of the topmost ``` ```directory (that is, the one specified on the command line upon starting ncdu) ``` ```is always correct. ``` ```.PP ``` ```ncdu 1.7 and later has improved hard link detection. Each file that has more ``` ```than two links has the \*(L"H\*(R" 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. ``` ```.SH "BUGS" ``` ```.IX Header "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. ``` ```.PP ``` ```Some minor glitches may appear when displaying filenames that contain multibyte ``` ```or multicolumn characters. ``` ```.PP ``` ```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. ``` ```.PP ``` ```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. ``` ```.PP ``` ```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. ``` ```.PP ``` ```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 ``` ```.SH "AUTHOR" ``` ```.IX Header "AUTHOR" ``` ```Written by Yoran Heling . ``` ```.SH "SEE ALSO" ``` ```.IX Header "SEE ALSO" ``` ```\&\fBdu\fR\|(1) ```