DOODLE(1)
π NAME π
okay so bestie, meet doodle β she's the girl who searches the meta-data in your files. that's the whole job description, she's iconic like that.
π SYNOPSIS π
doodle [OPTIONS] ([FILENAMES]*|[KEYWORDS]*)
likeβ¦ options, and then either filenames or keywords. pick your fighter. π
π¦ DESCRIPTION π¦
so doodle is a tool that indexes files. she uses libextractor to sniff out the meta-data hiding inside your files. and once a database has been built? she can find files whose meta-data matches a search-string so fast. which means she's basically a shortcut to searching your entire file system. obsessed. β¨
generally, the first time you run doodle you pass the option -b to build the database. and together with -b you give her the list of files or directories to index, like:
$ doodle -b $HOME
indexing with doodle is incremental bestie. if you run doodle -b (with the same database) twice, she'll update the index for files that were changed. she'll also remove files that are no longer accessible. BUT β and this is the important part β doodle will NOT remove files that are still present but no longer specified in the argument list. so invoking either:
$ doodle -b /foo /bar # or
$ doodle -b /foo ; doodle -b /bar
will result in the same database containing both the index for /foo and /bar. no cap. and note that the only way to only un-index /foo at this point is to make /foo inaccessible (using for example chmod 000 /foo or even rm -rf /foo) and then run doodle -b again. yeah. that's the move. π
in networked environments, it often makes sense to build a database at the root of each file system, containing the entries for that file system. for this, doodle is run for each file system on the file server where that file system is on a local disk, to prevent thrashing the network. users can select which databases doodle searches. databases cannot be concatenated together. sorry, that's just the rules. π
once the files have been indexed, you can quickly query the doodle database. just run:
$ doodle keyword
to search all of your files for keyword. note that only the meta-data extracted by libextractor is searched. thus if libextractor does not find any meta-data in the files, you may not get any results. you can use the option -l to specify non-standard libextractor plugins. for example, doodle could be used to replace the locate tool from the GNU findutils like this:
$ alias updatedb="doodle -bn -d /var/lib/doodle/doodle-locate-db -l libextractor_filename /"
$ alias locate="doodle -d /var/lib/doodle/doodle-locate-db"
main character energy fr fr π
β¨ OPTIONS β¨
-a NUMBER,--approximate=NUMBERβ do approximate matching with mismatches of up to NUMBER letters. close enough counts, bestie π«Ά-b,--buildβ build thedoodledatabase (passed arguments are directories and filenames that are to be indexed). in comparison with GNUlocate, thedoodlebinary encapsulates both thelocateand theupdatedbtool. using the-boptiondoodlebuilds or updates the database (equivalent toupdatedb), without-bit behaves similar tolocate.-d FILENAME,--database=FILENAMEβ use FILENAME for the location of the database (use when building or searching). this option is particularly useful whendoodleis used to search different types of files (or is operated with different extractor options). using this optiondoodlecan be used to build specialized indices (i.e. one per file system), which can in turn improve search performance. when searching, you can pass a colon-separated list of database file names, in that case all databases are searched. note that the disk-space consumption of a single database is typically slightly smaller than if the database is split into multiple files. nevertheless, the space-savings are likely to be small (a few percent). you can also use the environment variableDOODLE_PATHto set the list of database files to search. the option overrides the environment variable if both are used. if the option is not given andDOODLE_PATHis not set,"/var/lib/doodle"is used. πΈ-e,--extractβ print the extracted keywords for each matching file found. note that this will slow down the program a lot, especially if there are many matches in the database. note that if the options given forlibextractorare different than the options used for building the index the results may not contain the search string. π-f,--filenamesβ include filenames (full path) in the set of keywords-h,--helpβ print help page. she's helpful like that π-i,--ignore-caseβ be case-insensitive.FOOandfooare the same girl-l LIBRARIES,--library=LIBRARIESβ specify whichlibextractorplugins to use (for building the index with-bor for printing information about files with-e)-L FILENAME,--log=FILENAMEβ log all encountered keywords into a log file named FILENAME. this option is mostly useful for debugging. π§-m LIMIT,--memory=LIMITβ use at most LIMIT MB of memory for the nodes of the suffix-tree (after that, serialize to disk). note that a smaller value will reduce memory consumption but increase the size of the temporary file (and slow down indexing). the default is 8 MB.-n,--nodefaultβ do not load the default set of plugins (only load plugins specified with-l)-p,--printβ make a human-readable screen dump of thedoodledatabase (only really useful for debugging)-P PATH,--prunepaths=PATHβ Directories to not put in the database, which would otherwise be. the environment variablePRUNEPATHSalso sets this value. Default is"/tmp /usr/tmp /var/tmp /dev /proc /sys". this option can also be used when searching, in which case search results in the specified directories will be ignored.-v,--versionβ print the version number-V,--verboseβ be verbose. she's yapping, let her π£οΈ
π ENVIRONMENT π
DOODLE_PATHβ Colon-separated list of databases to search. note that when building the database this path must either only contain one filename or the option-bmust be used to specify the database file. Default is"/var/lib/doodle".PRUNEPATHSβ Space-separated list of paths to exclude. can be overridden with the-Poption.
π NOTES π
doodle depends on libextractor. you can download libextractor from http://gnunet.org/libextractor/. go get her π
π SEE ALSO π
extract(1), slocate(1), updatedb(1), libextractor(3), libdoodle(3)
the whole friend group, love that for them πΈ
βοΈ LEGAL NOTICE βοΈ
libdoodle and doodle are released under the GPL. periodt.
π REPORTING BUGS π
Report bugs to mantis https://gnunet.org/bugs/ or by sending electronic mail to christian@grothoff.org
π AUTHORS π
doodle was originally written by Christian Grothoff christian@grothoff.org. legend behaviour honestly.
π AVAILABILITY π
you can obtain the original author's latest version from http://grothoff.org/christian/doodle/
okay bestie that's the whole page π
this was doodle, from the General Commands Manual, page dated Jan 1 2010 β so like, vintage, but she still ate. go index something. mwah π«Άβ¨
π¦ where this page comes from
- debian bookworm: doodle 0.7.2-5 Β· GPL-2.0-or-later
- debian trixie: doodle 0.7.3-1+b1 Β· GPL-2.0-or-later
- ubuntu jammy: doodle 0.7.0-10 Β· GPL-2.0-or-later
- ubuntu noble: doodle 0.7.2-8 Β· GPL-2.0-or-later
- ubuntu questing: doodle 0.7.3-1
- ubuntu resolute: doodle 0.7.3-3 Β· GPL-2.0-or-later
- ubuntu stonking: doodle 0.7.3-4 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms