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 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568
|
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "DUC" "1" "July 2022" ""
.SH "NAME"
\fBduc\fR \- index, query and graph disk usage
.SH "SYNOPSIS"
\fBduc\fR \fIsubcommand\fR \fIoptions\fR
.SH "DESCRIPTION"
Duc is a collection of tools for inspecting and visualizing disk usage\.
.P
Duc maintains an indexed database of accumulated sizes of directories of your file system, and allows you to query this database with some tools, or create fancy sunburst graphs to show you where your bytes are\.
.P
Duc scales quite well, it has been tested on systems with more then 500 million files and several petabytes of storage\.
.SH "USAGE"
Duc comes with a command line tool called \fBduc\fR, which is used to create, maintain and query the disk usage database\. run \fBduc help\fR to get a list of available commands\. \fBduc help <subcommand>\fR describes the usage of a specific subcommand\. Run \fBduc help \-\-all\fR for an extensive list of all commands and their options\.
.P
Some commands might not be available on your system, depending on the exact configuration chosen when building Duc\. (For example, the \fBduc gui\fR command is not available in the \fBduc\-nox\fR package on Debian and Ubuntu)
.P
Duc allows any option to be placed either on the command line or in a configuration file\. Options on the command line are preceded by a double\-leading\-dash (\fB\-\-option\fR), some options have a corresponding short option which can be used as well with a single leading dash\. (\fB\-o\fR)
.P
At startup duc tries to read its configuration from three locations in this particular order: \fB/etc/ducrc\fR, \fB~/\.config/duc/ducrc\fR, \fB~/\.ducrc\fR and \fB\./\.ducrc\fR\.
.P
A configuration file consists of sections and parameters\. The section names correspond to the duc subcommands for which the parameters in that section apply\. A section begins with the name of the section in square brackets and continues until the next section begins\. Sections contain parameters, one per line, which consist of a single option name for boolean flags, or an option name and a value for options which take a value\. See the EXAMPLES section for an example of the configuration file format\.
.SH "CREATING THE INDEX"
Duc needs an index file of the file system before it is able to show any information\. To create the index, run the \fBduc index\fR command\. For example, to create an index of your home directory run \fBduc index ~\fR
.IP "" 4
.nf
$ duc index /usr
Skipping lost+found: Permission denied
Indexed 333823 files and 48200 directories, (35\.0GB total) in 1 seconds
.fi
.IP "" 0
.P
The default location of the database is \fB$HOME/\.duc\.db\fR\. To use a different database location, use the DUC_DATABASE environment variable or specify the database location with the \-\-database argument\.
.P
You can run \fBduc index\fR at any time later to rebuild the index\.
.P
By default Duc indexes all directories it encounters during file system traversal, including special file systems like /proc and /sys, and network file systems like NFS or Samba mounts\. There are a few options to select what parts of your filesystem you want to include or exclude from the scan, check the documentation below for the options \-\-one\-file\-system, \-\-exclude, \-\-fs\-exclude and \-\-fs\-include for more details\.
.SH "QUERYING THE INDEX"
Duc has various subcommands for querying or exploring the index: (Note that depending on your configuration, some of these commands might not be available)
.IP "\[ci]" 4
\fBduc info\fR shows a list of available directory trees in the database, and the time and date of the last scan\.
.IP "\[ci]" 4
\fBduc ls\fR lists all files and directories under the given path on the console\.
.IP "\[ci]" 4
\fBduc ui\fR runs a ncurses based console user interface for exploring the file system usage\.
.IP "\[ci]" 4
\fBduc gui\fR starts a graphical (X11) interface representing the file system in a sunburst graph\. Click on a directory to redraw the graph from the perspective of the selected directory\. Click in the center of the graph to go up one directory in the tree\.
.IP "" 0
.SH "OPTIONS"
This section list all available subcommands and describes their usage and options\.
.SS "Global options"
These options apply to all Duc subcommands:
.TP
\fB\-\-debug\fR
increase verbosity to debug level
.TP
\fB\-h\fR, \fB\-\-help\fR
show help
.TP
\fB\-q\fR, \fB\-\-quiet\fR
quiet mode, do not print any warning
.TP
\fB\-v\fR, \fB\-\-verbose\fR
increase verbosity
.TP
\fB\-\-version\fR
output version information and exit
.SS "duc help"
Options for command \fBduc help [options]\fR:
.TP
\fB\-a\fR, \fB\-\-all\fR
show complete help for all commands
.SS "duc index"
The 'index' subcommand performs a recursive scan of the given paths on the filesystem and calculates the inclusive size of all directories\. The results are written to the index, and can later be queried by one of the other duc tools\.
.P
Options for command \fBduc index [options] PATH \|\.\|\.\|\.\fR:
.TP
\fB\-b\fR, \fB\-\-bytes\fR
show file size in exact number of bytes
.TP
\fB\-d\fR, \fB\-\-database=VAL\fR
use database file VAL
.TP
\fB\-e\fR, \fB\-\-exclude=VAL\fR
exclude files matching VAL
.TP
\fB\-H\fR, \fB\-\-check\-hard\-links\fR
count hard links only once\. if two or more hard links point to the same file, only one of the hard links is displayed and counted
.TP
\fB\-f\fR, \fB\-\-force\fR
force writing in case of corrupted db
.TP
\fB\-\-fs\-exclude=VAL\fR
exclude file system type VAL during indexing\. VAL is a comma separated list of file system types as found in your systems fstab, for example ext3,ext4,dosfs
.TP
\fB\-\-fs\-include=VAL\fR
include file system type VAL during indexing\. VAL is a comma separated list of file system types as found in your systems fstab, for example ext3,ext4,dosfs
.TP
\fB\-\-hide\-file\-names\fR
hide file names in index (privacy)\. the names of directories will be preserved, but the names of the individual files will be hidden
.TP
\fB\-U\fR, \fB\-\-uid=VAL\fR
limit index to only files/dirs owned by uid
.TP
\fB\-u\fR, \fB\-\-username=VAL\fR
limit index to only files/dirs owned by username
.TP
\fB\-m\fR, \fB\-\-max\-depth=VAL\fR
limit directory names to given depth\. when this option is given duc will traverse the complete file system, but will only the first VAL levels of directories in the database to reduce the size of the index
.TP
\fB\-x\fR, \fB\-\-one\-file\-system\fR
skip directories on different file systems
.TP
\fB\-p\fR, \fB\-\-progress\fR
show progress during indexing
.TP
\fB\-\-dry\-run\fR
do not update database, just crawl
.TP
\fB\-\-uncompressed\fR
do not use compression for database\. Duc enables compression if the underlying database supports this\. This reduces index size at the cost of slightly longer indexing time
.SS "duc info"
Options for command \fBduc info [options]\fR:
.TP
\fB\-a\fR, \fB\-\-apparent\fR
show apparent instead of actual file size
.TP
\fB\-b\fR, \fB\-\-bytes\fR
show file size in exact number of bytes
.TP
\fB\-d\fR, \fB\-\-database=VAL\fR
select database file to use [~/\.duc\.db]
.SS "duc ls"
The 'ls' subcommand queries the duc database and lists the inclusive size of all files and directories on the given path\. If no path is given the current working directory is listed\.
.P
Options for command \fBduc ls [options] [PATH]\|\.\|\.\|\.\fR:
.TP
\fB\-a\fR, \fB\-\-apparent\fR
show apparent instead of actual file size
.TP
\fB\-\-ascii\fR
use ASCII characters instead of UTF\-8 to draw tree
.TP
\fB\-b\fR, \fB\-\-bytes\fR
show file size in exact number of bytes
.TP
\fB\-F\fR, \fB\-\-classify\fR
append file type indicator (one of */) to entries
.TP
\fB\-c\fR, \fB\-\-color\fR
colorize output (only on ttys)
.TP
\fB\-\-count\fR
show number of files instead of file size
.TP
\fB\-d\fR, \fB\-\-database=VAL\fR
select database file to use [~/\.duc\.db]
.TP
\fB\-D\fR, \fB\-\-directory\fR
list directory itself, not its contents
.TP
\fB\-\-dirs\-only\fR
list only directories, skip individual files
.TP
\fB\-\-full\-path\fR
show full path instead of tree in recursive view
.TP
\fB\-g\fR, \fB\-\-graph\fR
draw graph with relative size for each entry
.TP
\fB\-l\fR, \fB\-\-levels=VAL\fR
traverse up to ARG levels deep [4]
.TP
\fB\-n\fR, \fB\-\-name\-sort\fR
sort output by name instead of by size
.TP
\fB\-R\fR, \fB\-\-recursive\fR
recursively list subdirectories
.SS "duc xml"
Options for command \fBduc xml [options] [PATH]\fR:
.TP
\fB\-a\fR, \fB\-\-apparent\fR
interpret min_size/\-s value as apparent size
.TP
\fB\-d\fR, \fB\-\-database=VAL\fR
select database file to use [~/\.duc\.db]
.TP
\fB\-x\fR, \fB\-\-exclude\-files\fR
exclude file from xml output, only include directories
.TP
\fB\-s\fR, \fB\-\-min_size=VAL\fR
specify min size for files or directories
.SS "duc json"
Options for command \fBduc json [options] [PATH]\fR:
.TP
\fB\-a\fR, \fB\-\-apparent\fR
interpret min_size/\-s value as apparent size
.TP
\fB\-d\fR, \fB\-\-database=VAL\fR
select database file to use [~/\.duc\.db]
.TP
\fB\-x\fR, \fB\-\-exclude\-files\fR
exclude file from json output, only include directories
.TP
\fB\-s\fR, \fB\-\-min_size=VAL\fR
specify min size for files or directories
.SS "duc graph"
The 'graph' subcommand queries the duc database and generates a sunburst graph showing the disk usage of the given path\. If no path is given a graph is created for the current working directory\.
.P
By default the graph is written to the file 'duc\.png', which can be overridden by using the \-o/\-\-output option\. The output can be sent to stdout by using the special file name '\-'\.
.P
Options for command \fBduc graph [options] [PATH]\fR:
.TP
\fB\-a\fR, \fB\-\-apparent\fR
Show apparent instead of actual file size
.TP
\fB\-d\fR, \fB\-\-database=VAL\fR
select database file to use [~/\.duc\.db]
.TP
\fB\-\-count\fR
show number of files instead of file size
.TP
\fB\-\-dpi=VAL\fR
set destination resolution in DPI [96\.0]
.TP
\fB\-f\fR, \fB\-\-format=VAL\fR
select output format \fIpng|svg|pdf|html\fR [png]
.TP
\fB\-\-fuzz=VAL\fR
use radius fuzz factor when drawing graph [0\.7]
.TP
\fB\-\-gradient\fR
draw graph with color gradient
.TP
\fB\-l\fR, \fB\-\-levels=VAL\fR
draw up to ARG levels deep [4]
.TP
\fB\-o\fR, \fB\-\-output=VAL\fR
output file name [duc\.png]
.TP
\fB\-\-palette=VAL\fR
select palette\. available palettes are: size, rainbow, greyscale, monochrome, classic
.TP
\fB\-\-ring\-gap=VAL\fR
leave a gap of VAL pixels between rings
.TP
\fB\-s\fR, \fB\-\-size=VAL\fR
image size [800]
.SS "duc cgi"
Options for command \fBduc cgi [options] [PATH]\fR:
.TP
\fB\-a\fR, \fB\-\-apparent\fR
Show apparent instead of actual file size
.TP
\fB\-b\fR, \fB\-\-bytes\fR
show file size in exact number of bytes
.TP
\fB\-\-count\fR
show number of files instead of file size
.TP
\fB\-\-css\-url=VAL\fR
url of CSS style sheet to use instead of default CSS
.TP
\fB\-d\fR, \fB\-\-database=VAL\fR
select database file to use [~/\.duc\.db]
.TP
\fB\-\-dpi=VAL\fR
set destination resolution in DPI [96\.0]
.TP
\fB\-\-footer=VAL\fR
select HTML file to include as footer
.TP
\fB\-\-fuzz=VAL\fR
use radius fuzz factor when drawing graph [0\.7]
.TP
\fB\-\-gradient\fR
draw graph with color gradient
.TP
\fB\-\-header=VAL\fR
select HTML file to include as header
.TP
\fB\-l\fR, \fB\-\-levels=VAL\fR
draw up to ARG levels deep [4]
.TP
\fB\-\-list\fR
generate table with file list
.TP
\fB\-\-palette=VAL\fR
select palette\. available palettes are: size, rainbow, greyscale, monochrome, classic
.TP
\fB\-\-ring\-gap=VAL\fR
leave a gap of VAL pixels between rings
.TP
\fB\-s\fR, \fB\-\-size=VAL\fR
image size [800]
.TP
\fB\-\-tooltip\fR
enable tooltip when hovering over the graph\. enabling the tooltip will cause an asynchronous HTTP request every time the mouse is moved and can greatly increase the HTTP traffic to the web server
.SS "duc gui"
The 'gui' subcommand queries the duc database and runs an interactive graphical utility for exploring the disk usage of the given path\. If no path is given the current working directory is explored\.
.P
The following keys can be used to navigate and alter the graph:
.IP "" 4
.nf
+ increase maximum graph depth
\- decrease maximum graph depth
0 Set default graph depth
a Toggle between apparent and actual disk usage
b Toggle between exact byte count and abbreviated sizes
c Toggle between file size and file count
f toggle graph fuzz
g toggle graph gradient
p toggle palettes
backspace go up one directory
.fi
.IP "" 0
.P
Options for command \fBduc gui [options] [PATH]\fR:
.TP
\fB\-a\fR, \fB\-\-apparent\fR
show apparent instead of actual file size
.TP
\fB\-b\fR, \fB\-\-bytes\fR
show file size in exact number of bytes
.TP
\fB\-\-count\fR
show number of files instead of file size
.TP
\fB\-\-dark\fR
use dark background color
.TP
\fB\-d\fR, \fB\-\-database=VAL\fR
select database file to use [~/\.duc\.db]
.TP
\fB\-\-fuzz=VAL\fR
use radius fuzz factor when drawing graph
.TP
\fB\-\-gradient\fR
draw graph with color gradient
.TP
\fB\-l\fR, \fB\-\-levels=VAL\fR
draw up to VAL levels deep [4]
.TP
\fB\-\-palette=VAL\fR
select palette\. available palettes are: size, rainbow, greyscale, monochrome, classic
.TP
\fB\-\-ring\-gap=VAL\fR
leave a gap of VAL pixels between rings
.SS "duc ui"
The 'ui' subcommand queries the duc database and runs an interactive ncurses utility for exploring the disk usage of the given path\. If no path is given the current working directory is explored\.
.P
The following keys can be used to navigate and alter the file system:
.IP "" 4
.nf
up, pgup, j: move cursor up
down, pgdn, k: move cursor down
home, 0: move cursor to top
end, $: move cursor to bottom
left, backspace: go up to parent directory (\.\.)
right, enter: descent into selected directory
a: toggle between actual and apparent disk usage
b: toggle between exact and abbreviated sizes
c: Toggle between file size and file count
h: show help\. press 'q' to return to the main screen
n: toggle sort order between 'size' and 'name'
o: try to open the file using xdg\-open
q, escape: quit
.fi
.IP "" 0
.P
Options for command \fBduc ui [options] [PATH]\fR:
.TP
\fB\-a\fR, \fB\-\-apparent\fR
show apparent instead of actual file size
.TP
\fB\-b\fR, \fB\-\-bytes\fR
show file size in exact number of bytes
.TP
\fB\-\-count\fR
show number of files instead of file size
.TP
\fB\-d\fR, \fB\-\-database=VAL\fR
select database file to use [~/\.duc\.db]
.TP
\fB\-n\fR, \fB\-\-name\-sort\fR
sort output by name instead of by size
.TP
\fB\-\-no\-color\fR
do not use colors on terminal output
.SH "CGI INTERFACING"
The \fBduc\fR binary has support for a rudimentary CGI interface, currently only tested with apache\. The CGI interface generates a simple HTML page with a list of indexed directories, and shows a clickable graph for navigating the file system\. If the option \fB\-\-list\fR is given, a list of top sized files/dirs is also written\.
.P
Configuration is done by creating a simple shell script as \.cgi in a directory which is configured for CGI execution by your web server (usually \fB/usr/lib/cgi\-bin\fR)\. The shell script should simply start duc, and pass the location of the database to navigate\.
.P
An example duc\.cgi script would be
.IP "" 4
.nf
#!/bin/sh
/usr/local/bin/duc cgi \-d /home/jenny/\.duc\.db
.fi
.IP "" 0
.IP "\[ci]" 4
Make sure the database file is readable by the user (usually www\-data)
.IP "\[ci]" 4
Debugging is best done by inspecting the web server's error log
.IP "\[ci]" 4
Make sure the \.cgi script has execute permissions (\fBchmod +x duc\.cgi\fR)
.IP "" 0
.P
Some notes:
.IP "\[ci]" 4
The HTML page is generated with a simple embedded CSS style sheet\. If the style is not to your liking you can provide an external CSS url with the \-\-css\-url option which will then be used instead of the embedded style definition\.
.IP "\[ci]" 4
Add the option \-\-list to generate a table of top sized files and directories in the HTML page\.
.IP "\[ci]" 4
The options \-\-header and \-\-footer allow you to insert your own HTML code before and after the main\.
.IP "" 0
.P
The current CGI configuration is not very flexible, nor secure\. It is not advised to run the CGI from public reachable web servers, use at your own risk\.
.SH "A NOTE ON FILE SIZE AND DISK USAGE"
The concepts of 'file size' and 'disk usage' can be a bit confusing\. Files on disk have an apparent size, which indicates how much bytes are in the file from the users point of view; this is the size reported by tools like \fBls \-l\fR\. The apparent size can be any number, from 0 bytes up to several TB\. The actual number of bytes which are used on the filesystem to store the file can differ from this apparent size for a number of reasons: disks store data in blocks, which cause files to always take up a multiple of the block size, files can have holes ('sparse' files), and other technical reasons\. This number is always a multiple of 512, which means that the actual size used for a file is almost always a bit more then its apparent size\.
.P
Duc has two modes for counting file sizes:
.IP "\[ci]" 4
\fBapparent size\fR: this is the size as reported by \fBls\fR\. This number indicates the file length, which is usually smaller then the actual disk usage\.
.IP "\[ci]" 4
\fBactual size\fR: this is the size as reported by \fBdu\fR and \fBdf\fR\. The actual file size tells you how much disk is actually used by a file, and is always a multiple of 512 bytes\.
.IP "" 0
.P
The default mode used by duc is to use the 'actual size'\. Most duc commands to report disk usage (\fBduc ls\fR, \fBduc graph\fR, \fBduc ui\fR, etc) have an option to change between these two modes (usually the \fB\-a\fR), or use the 'a' key to toggle\.
.SH "BUILDING from git"
If you use git clone to pull down the latest release, you will have to do the following:
.P
git clone https://github\.com/zevv/duc
.br
cd duc
.br
autoreconf \-i
.P
Then you can run the regular
.P
\&\./configure [ options ]
.br
make
.P
to the regular build of the software\.
.P
A note for Redhat and derivates users\. The package providing the development file for lmdb (lmdb\-devel) does not include a lmdb\.pc pkgconfig file\. This could lead to errors during the configure phase:
.P
checking for LMDB\|\.\|\.\|\. no
.br
configure: error: Package requirements (lmdb) were not met:
.P
To avoid the need to call pkg\-config, you may set the environment variables
.br
LMDB_CFLAGS and LMDB_LIBS:
.P
LMDB_CFLAGS=" " LMDB_LIBS=\-llmdb \./configure \-\-with\-db\-backend=lmdb [ options ]
.SH "EXAMPLES"
Index the /usr directory, writing to the default database location ~/\.duc\.db:
.IP "" 4
.nf
$ duc index /usr
.fi
.IP "" 0
.P
List all files and directories under /usr/local, showing relative file sizes in a graph:
.IP "" 4
.nf
$ duc ls \-Fg /usr/local
4\.7G lib/ [+++++++++++++++++++++++++++++++++++++++++++]
3\.1G share/ [++++++++++++++++++++++++++++ ]
2\.7G src/ [++++++++++++++++++++++++ ]
814\.9M bin/ [+++++++ ]
196\.6M include/ [+ ]
66\.6M x86_64\-w64\-mingw32/ [ ]
59\.9M local/ [ ]
38\.8M i686\-w64\-mingw32/ [ ]
20\.3M sbin/ [ ]
13\.6M lib32/ [ ]
13\.3M libx32/ [ ]
.fi
.IP "" 0
.P
or use the \-R options for the tree view:
.IP "" 4
.nf
$ duc ls \-RF /etc/logcheck
24\.0K `+\- ignore\.d\.server/
4\.0K | `+\- hddtemp
4\.0K | |\- ntpdate
4\.0K | |\- lirc
4\.0K | |\- rsyslog
4\.0K | `\- libsasl2\-modules
8\.0K |\- ignore\.d\.workstation/
4\.0K | `\- lirc
8\.0K `\- ignore\.d\.paranoid/
4\.0K `\- lirc
.fi
.IP "" 0
.P
Start the graphical interface to explore the file system using sunburst graphs:
.IP "" 4
.nf
$ duc gui /usr
.fi
.IP "" 0
.P
Generate a graph of /usr/local in \.png format:
.IP "" 4
.nf
$ duc graph \-o /tmp/usr\.png /usr
.fi
.IP "" 0
.P
The following sample configuration file defines default parameters for the \fBduc ls\fR and \fBduc ui\fR commands and defines a global option to configure the database path which is used by all subcommands
.IP "" 4
.nf
[global]
database /var/cache/duc\.db
[ls]
recursive
classify
color
[ui]
no\-color
apparent
.fi
.IP "" 0
.SH "FREQUENTLY ASKED QUESTIONS"
.IP "\[ci]" 4
What does the error 'Database version mismatch mean?'
.IP
The layout of the index database sometimes changes when new features are implemented\. When you get this error you have probably upgraded to a newer version\. Just remove the old database file and rebuild the index\.
.IP "\[ci]" 4
Duc crashes with a segmentation fault, is it that buggy?
.IP
By default Duc uses the Tokyocabinet database backend\. Tokyocabinet is pretty fast, stores the database in a single file and has nice compression support to keep the database small\. Unfortunately, it is not always robust and sometimes chokes on corrupt database files\. Try to remove the database and rebuild the index\. If the error persists contact the authors\.
.IP "\[ci]" 4
Some of the Duc subcommands like \fBduc gui\fR are not available on my system?
.IP
Depending on the configuration that was chosen when building Duc, some options might or might not be available in the \fBduc\fR utility\. For example, on Debian or Ubuntu Duc comes in two flavours: there is a full featured package called \fBduc\fR, or a package without dependencies on X\-windows called \fBduc\-nox\fR, for which the latter lacks the \fBduc gui\fR command\.
.IP "\[ci]" 4
\fBduc index\fR is hogging my system and using a lot of CPU and I/O!
.IP
Traversing a file system is hard work \- which is the exact reason why Duc exists in the first place\. You can use the default tools to make Duc behave nice towards other processes on your machine, use something like:
.IP
\fBnice 19 ionice \-c 3 duc index [options]\fR
.IP
This makes \fBduc index\fR run with the lowest CPU and I/O scheduler priorities, which is nicer to all the other processes on your machine\.
.IP "" 0
.SH "FILES"
At startup duc tries to read its configuration from three locations in this particular order: \fB/etc/ducrc\fR, \fB~/\.config/duc/ducrc\fR, \fB~/\.ducrc\fR and \fB\./\.ducrc\fR\.
.P
Duc mainains an index of scanned directories, which defaults to ~/\.duc\.db\. All tools take the \-d/\-\-database option to override the database path\.
.SH "AUTHORS"
.IP "\[ci]" 4
Ico Doornekamp \fIduc@zevv\.nl\fR
.IP "\[ci]" 4
John Stoffel \fIjohn@stoffel\.org\fR
.IP "" 0
.P
Other contributors can be found in the Git log at GitHub\.
.SH "LICENSE"
Duc is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2 dated June, 1991\. Duc is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE\. See the GNU General Public License for more details\.
|