summaryrefslogtreecommitdiff
path: root/doc/ncdu.pod
blob: 880a4a24a1d71b62ec321e60f4845fd944b04d81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
.TH ncdu 1 "Nov 3, 2011" "ncdu-1.8" "ncdu manual"

=head1 NAME

B<ncdu> - NCurses Disk Usage


=head1 SYNOPSIS

B<ncdu> [I<options>] I<dir>


=head1 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.


=head1 OPTIONS

=head2 Mode Selection

=over

=item -h

Print a short help message and quit.

=item -v

Print ncdu version and quit.

=item -f I<FILE>

Load the given file, which has earlier been created with the C<-o> option. If
I<FILE> is equivalent to C<->, 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 and file
deletion options in the browser will be disabled.

=item I<dir>

Scan the given directory.

=item -o I<FILE>

Export all necessary information to I<FILE> instead of opening the browser
interface. If I<FILE> is C<->, the data is written to standard output.

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.

=back

=head2 Interface options

=over

=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 C<-o>, ncurses will not be
initialized at all. This option is the default when exporting to standard
output.

=item -1

Similar to C<-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, C<-2> is probably a better choice.

=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.

=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 C<-0> is used.

=item -r

Read-only mode. This will disable the built-in file deletion feature. This
option has no effect when C<-o> is used, because there will not be a browser
interface in that case. It has no effect when C<-f> is used, either, because
the deletion feature is disabled in that case anyway.

=back

=head2 Scan Options

These options affect the scanning progress, and have no effect when importing
directory information from a file.

=over

=item -x

Do not cross filesystem boundaries, i.e. only count files and directories on
the same filesystem as the directory being scanned.

=item --exclude I<PATTERN>

Exclude files that match I<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.

=item -X I<FILE>, --exclude-from I<FILE>

Exclude files that match any pattern in I<FILE>. Patterns should be separated
by a newline.

=back


=head1 KEYS

=over

=item ?

Show help + keys + about screen

=item up, down j, k

Cycle through the items

=item right, enter, l

Open selected directory

=item left, <, h

Go to parent directory

=item n

Order by filename (press again for descending order)

=item s

Order by filesize (press again for descending order)

=item a

Toggle between showing disk usage and showing apparent size.

=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.

=item t

Toggle dirs before files when sorting.

=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.

=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.

=item i

Show information about the current selected item.

=item r

Refresh/recalculate the current directory.

=item q

Quit

=back


=head1 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.


=head1 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.

Please report any other bugs you may find at the bug tracker, which can be
found on the web site at http://dev.yorhel.nl/ncdu


=head1 AUTHOR

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


=head1 SEE ALSO

L<du(1)>