]> git.pld-linux.org Git - packages/findutils.git/blob - findutils-info.patch
- unify ftp.gnu.org urls
[packages/findutils.git] / findutils-info.patch
1 --- findutils-4.4.0/doc/find.texi.orig  2008-03-10 21:31:16.000000000 +0100
2 +++ findutils-4.4.0/doc/find.texi       2008-03-16 00:00:13.875930612 +0100
3 @@ -7,23 +7,16 @@
4  @c %**end of header
5  
6  @include version.texi
7 -@include ../locate/dblocation.texi
8  
9  @iftex
10  @finalout
11  @end iftex
12  
13 -@dircategory Basics
14 +@dircategory Shell utilities:
15  @direntry
16 -* Finding files: (find).        Operating on files matching certain criteria.
17 -@end direntry
18 -
19 -@dircategory Individual utilities
20 -@direntry
21 -* find: (find)Invoking find.                    Finding and acting on files.
22 -* locate: (find)Invoking locate.                Finding files in a database.
23 -* updatedb: (find)Invoking updatedb.            Building the locate database.
24 -* xargs: (find)Invoking xargs.                  Operating on many files.
25 +* Finding files: (find).               Operating on files matching certain criteria
26 +* find: (find)find.                    Finding and acting on files
27 +* xargs: (find)xargs.                  Operating on many files
28  @end direntry
29  
30  @copying
31 @@ -225,9 +218,7 @@
32  @section Overview
33  
34  The principal programs used for making lists of files that match given
35 -criteria and running commands on them are @code{find}, @code{locate},
36 -and @code{xargs}.  An additional command, @code{updatedb}, is used by
37 -system administrators to create databases for @code{locate} to use.
38 +criteria and running commands on them are @code{find} and @code{xargs}.
39  
40  @code{find} searches for files in a directory hierarchy and prints
41  information about the files it found.  It is run like this:
42 @@ -247,23 +238,6 @@
43  Notice that the wildcard must be enclosed in quotes in order to
44  protect it from expansion by the shell.
45  
46 -@code{locate} searches special file name databases for file names that
47 -match patterns.  The system administrator runs the @code{updatedb}
48 -program to create the databases.  @code{locate} is run like this:
49 -
50 -@example
51 -locate @r{[}@var{option}@dots{}@r{]} @var{pattern}@dots{}
52 -@end example
53 -
54 -@noindent
55 -This example prints the names of all files in the default file name
56 -database whose name ends with @samp{Makefile} or @samp{makefile}.
57 -Which file names are stored in the database depends on how the system
58 -administrator ran @code{updatedb}.
59 -@example
60 -locate '*[Mm]akefile'
61 -@end example
62 -
63  The name @code{xargs}, pronounced EX-args, means ``combine
64  arguments.''  @code{xargs} builds and executes command lines by
65  gathering together arguments it reads on the standard input.  Most
66 @@ -371,7 +345,6 @@
67  @menu
68  * Base Name Patterns::
69  * Full Name Patterns::
70 -* Fast Full Name Search::
71  * Shell Pattern Matching::      Wildcards used by these programs.
72  @end menu
73  
74 @@ -504,78 +477,6 @@
75  
76  @end deffn
77  
78 -@node Fast Full Name Search
79 -@subsection Fast Full Name Search
80 -
81 -To search for files by name without having to actually scan the
82 -directories on the disk (which can be slow), you can use the
83 -@code{locate} program.  For each shell pattern you give it,
84 -@code{locate} searches one or more databases of file names and
85 -displays the file names that contain the pattern.  @xref{Shell Pattern
86 -Matching}, for details about shell patterns.
87 -
88 -If a pattern is a plain string---it contains no
89 -metacharacters---@code{locate} displays all file names in the database
90 -that contain that string.  If a pattern contains
91 -metacharacters, @code{locate} only displays file names that match the
92 -pattern exactly.  As a result, patterns that contain metacharacters
93 -should usually begin with a @samp{*}, and will most often end with one
94 -as well.  The exceptions are patterns that are intended to explicitly
95 -match the beginning or end of a file name.
96 -
97 -If you only want @code{locate} to match against the last component of
98 -the file names (the ``base name'' of the files) you can use the
99 -@samp{--basename} option.  The opposite behaviour is the default, but
100 -can be selected explicitly by using the option @samp{--wholename}.
101 -
102 -The command
103 -@example
104 -locate @var{pattern}
105 -@end example
106 -
107 -is almost equivalent to
108 -@example
109 -find @var{directories} -name @var{pattern}
110 -@end example
111 -
112 -where @var{directories} are the directories for which the file name
113 -databases contain information.  The differences are that the
114 -@code{locate} information might be out of date, and that @code{locate}
115 -handles wildcards in the pattern slightly differently than @code{find}
116 -(@pxref{Shell Pattern Matching}).
117 -
118 -The file name databases contain lists of files that were on the system
119 -when the databases were last updated.  The system administrator can
120 -choose the file name of the default database, the frequency with which
121 -the databases are updated, and the directories for which they contain
122 -entries.
123 -
124 -Here is how to select which file name databases @code{locate}
125 -searches.  The default is system-dependent.  At the time this document
126 -was generated, the default was @file{@value{LOCATE_DB}}.
127 -
128 -@table @code
129 -@item --database=@var{path}
130 -@itemx -d @var{path}
131 -Instead of searching the default file name database, search the file
132 -name databases in @var{path}, which is a colon-separated list of
133 -database file names.  You can also use the environment variable
134 -@code{LOCATE_PATH} to set the list of database files to search.  The
135 -option overrides the environment variable if both are used.
136 -@end table
137 -
138 -GNU @code{locate} can read file name databases generated by the
139 -@code{slocate} package.  However, these generally contain a list of
140 -all the files on the system, and so when using this database,
141 -@code{locate} will produce output only for files which are accessible
142 -to you.  @xref{Invoking locate}, for a description of the
143 -@samp{--existing} option which is used to do this.
144 -
145 -The @code{updatedb} program can also generate database in a format
146 -compatible with @code{slocate}.  @xref{Invoking updatedb}, for a
147 -description of its @samp{--dbformat} and @samp{--output} options.
148 -
149 -
150  @node Shell Pattern Matching
151  @subsection Shell Pattern Matching
152  
153 @@ -2650,42 +2551,11 @@
154  @samp{locate --statistics}.
155  
156  @menu
157 -* Database Locations::
158  * Database Formats::
159  * Newline Handling::
160  @end menu
161  
162  
163 -@node Database Locations
164 -@section Database Locations
165 -
166 -There can be multiple file name databases.  Users can select which
167 -databases @code{locate} searches using the @code{LOCATE_PATH}
168 -environment variable or a command line option.  The system
169 -administrator can choose the file name of the default database, the
170 -frequency with which the databases are updated, and the directories
171 -for which they contain entries.  File name databases are updated by
172 -running the @code{updatedb} program, typically nightly.
173 -
174 -In networked environments, it often makes sense to build a database at
175 -the root of each filesystem, containing the entries for that
176 -filesystem.  @code{updatedb} is then run for each filesystem on the
177 -fileserver where that filesystem is on a local disk, to prevent
178 -thrashing the network.
179 -
180 -@xref{Invoking updatedb}, for the description of the options to
181 -@code{updatedb}.  These options can be used to specify which
182 -directories are indexed by each database file.
183 -
184 -The default location for the locate database depends on how findutils
185 -is built, but the findutils installation accompanying this manual uses
186 -the default location @file{@value{LOCATE_DB}}.
187 -
188 -If no database exists at @file{@value{LOCATE_DB}} but the user did not
189 -specify where to look (by using @samp{-d} or setting
190 -@code{LOCATE_PATH}), then @code{locate} will also check for a
191 -``secure'' database in @file{/var/lib/slocate/slocate.db}.
192 -
193  @node Database Formats
194  @section Database Formats
195  
196 @@ -2904,15 +2774,13 @@
197  discussed in this manual.
198  
199  @menu
200 -* Invoking find::
201 -* Invoking locate::
202 -* Invoking updatedb::
203 -* Invoking xargs::
204 +* find::
205 +* xargs::
206  * Regular Expressions::
207  * Environment Variables::
208  @end menu
209  
210 -@node Invoking find
211 +@node find
212  @section Invoking @code{find}
213  
214  @example
215 @@ -3120,268 +2988,7 @@
216  actions, and options that the expression can contain.  If the
217  expression is missing, @samp{-print} is assumed.
218  
219 -@node Invoking locate
220 -@section Invoking @code{locate}
221 -
222 -@example
223 -locate @r{[}@var{option}@dots{}@r{]} @var{pattern}@dots{}
224 -@end example
225 -
226 -For each @var{pattern} given @code{locate} searches one or more file
227 -name databases returning each match of @var{pattern}.
228 -
229 -For each @var{pattern} given @code{locate} searches one or more file
230 -name databases returning each match of @var{pattern}.
231 -
232 -@table @code
233 -@item --all
234 -@itemx -A
235 -Print only names which match all non-option arguments, not those
236 -matching one or more non-option arguments.
237 -
238 -@item --basename
239 -@itemx -b
240 -The specified pattern is matched against just the last component of
241 -the name of a file in the @code{locate} database.  This last
242 -component is also called the ``base name''.  For example, the base
243 -name of @file{/tmp/mystuff/foo.old.c} is @file{foo.old.c}.  If the
244 -pattern contains metacharacters, it must match the base name exactly.
245 -If not, it must match part of the base name.
246 -
247 -@item --count
248 -@itemx -c
249 -Instead of printing the matched file names, just print the total
250 -number of matches found, unless @samp{--print} (@samp{-p}) is also
251 -present.
252 -
253 -
254 -@item --database=@var{path}
255 -@itemx -d @var{path}
256 -Instead of searching the default @code{locate} database
257 -@file{@value{LOCATE_DB}}, @code{locate} searches the file
258 -name databases in @var{path}, which is a colon-separated list of
259 -database file names.  You can also use the environment variable
260 -@code{LOCATE_PATH} to set the list of database files to search.  The
261 -option overrides the environment variable if both are used.  Empty
262 -elements in @var{path} (that is, a leading or trailing colon, or two
263 -colons in a row) are taken to stand for the default database.
264 -A database can be supplied on stdin, using @samp{-} as an element
265 -of @samp{path}. If more than one element of @samp{path} is @samp{-},
266 -later instances are ignored (but a warning message is printed).
267 -
268 -@item --existing
269 -@itemx -e
270 -Only print out such names which currently exist (instead of such names
271 -which existed when the database was created).  Note that this may slow
272 -down the program a lot, if there are many matches in the database.
273 -The way in which broken symbolic links are treated is affected by the
274 -@samp{-L}, @samp{-P} and @samp{-H} options.  Please note that it is
275 -possible for the file to be deleted after @code{locate} has checked
276 -that it exists, but before you use it.  This option is automatically
277 -turned on when reading an @code{slocate} database in secure mode
278 -(@pxref{slocate Database Format}).
279 -
280 -@item --non-existing
281 -@itemx -E
282 -Only print out such names which currently do not exist (instead of
283 -such names which existed when the database was created).  Note that
284 -this may slow down the program a lot, if there are many matches in the
285 -database.  The way in which broken symbolic links are treated is
286 -affected by the @samp{-L}, @samp{-P} and @samp{-H} options.  Please
287 -note that @code{locate} checks that the file does not exist, but a
288 -file of the same name might be created after @code{locate}'s check but
289 -before you read @code{locate}'s output.
290 -
291 -@item --follow
292 -@itemx -L
293 -If testing for the existence of files (with the @samp{-e} or @samp{-E}
294 -options), consider broken symbolic links to be non-existing.  This is
295 -the default behaviour.  
296 -
297 -@item --nofollow
298 -@itemx -P
299 -@itemx -H
300 -If testing for the existence of files (with the @samp{-e} or @samp{-E}
301 -options), treat broken symbolic links as if they were existing files.
302 -The @samp{-H} form of this option is provided purely for similarity
303 -with @code{find}; the use of @samp{-P} is recommended over @samp{-H}.
304 -
305 -@item --ignore-case
306 -@itemx -i
307 -Ignore case distinctions in both the pattern and the file names.
308 -
309 -@item --limit=N
310 -@itemx -l N
311 -Limit the number of results printed to N.  When used with the
312 -@samp{--count} option, the value printed will never be larger than
313 -this limit.
314 -@item --max-database-age=D
315 -Normally, @code{locate} will issue a warning message when it searches
316 -a database which is more than 8 days old.  This option changes that
317 -value to something other than 8.  The effect of specifying a negative
318 -value is undefined.
319 -@item --mmap
320 -@itemx -m
321 -Accepted but does nothing.  The option is supported only to provide
322 -compatibility with BSD's @code{locate}.
323 -
324 -@item --null
325 -@itemx -0
326 -Results are separated with the ASCII NUL character rather than the
327 -newline character.  To get the full benefit of this option,
328 -use the new @code{locate} database format (that is the default
329 -anyway).
330 -
331 -@item --print
332 -@itemx -p
333 -Print search results when they normally would not be due to
334 -use of @samp{--statistics} (@samp{-S}) or @samp{--count}
335 -(@samp{-c}).
336 -
337 -@item --wholename
338 -@itemx -w
339 -The specified pattern is matched against the whole name of the file in
340 -the @code{locate} database.  If the pattern contains metacharacters,
341 -it must match exactly.  If not, it must match part of the whole file
342 -name.  This is the default behaviour.
343 -
344 -@item --regex
345 -@itemx -r
346 -Instead of using substring or shell glob matching, the pattern
347 -specified on the command line is understood to be a regular
348 -expression.  GNU Emacs-style regular expressions are assumed unless
349 -the @samp{--regextype} option is also given.  File names from the
350 -@code{locate} database are matched using the specified regular
351 -expression.  If the @samp{-i} flag is also given, matching is
352 -case-insensitive.  Matches are performed against the whole path name,
353 -and so by default a pathname will be matched if any part of it matches
354 -the specified regular expression.  The regular expression may use
355 -@samp{^} or @samp{$} to anchor a match at the beginning or end of a
356 -pathname.
357 -
358 -@item --regextype
359 -This option changes the regular expression syntax and behaviour used
360 -by the @samp{--regex} option.  @ref{Regular Expressions} for more
361 -information on the regular expression dialects understood by GNU
362 -findutils.
363 -
364 -@item --stdio
365 -@itemx -s
366 -Accepted but does nothing.  The option is supported only to provide
367 -compatibility with BSD's @code{locate}.
368 -
369 -@item --statistics
370 -@itemx -S
371 -Print some summary information for each @code{locate} database.  No
372 -search is performed unless non-option arguments are given.
373 -Although the BSD version of locate also has this option, the format of the
374 -output is different.
375 -
376 -@item --help
377 -Print a summary of the command line usage for @code{locate} and exit.
378 -
379 -@item --version
380 -Print the version number of @code{locate} and exit.
381 -@end table
382 -
383 -@node Invoking updatedb
384 -@section Invoking @code{updatedb}
385 -
386 -@example
387 -updatedb @r{[}@var{option}@dots{}@r{]}
388 -@end example
389 -
390 -@code{updatedb} creates and updates the database of file names used by
391 -@code{locate}.  @code{updatedb} generates a list of files similar to
392 -the output of @code{find} and then uses utilities for optimizing the
393 -database for performance.  @code{updatedb} is often run periodically
394 -as a @code{cron} job and configured with environment variables or
395 -command options.  Typically, operating systems have a shell script
396 -that ``exports'' configurations for variable definitions and uses
397 -another shell script that ``sources'' the configuration file into the
398 -environment and then executes @code{updatedb} in the environment.
399 -
400 -@code{updatedb} creates and updates the database of file names used by
401 -@code{locate}.  @code{updatedb} generates a list of files similar to
402 -the output of @code{find} and then uses utilities for optimizing the
403 -database for performance.  @code{updatedb} is often run periodically
404 -as a @code{cron} job and configured with environment variables or
405 -command options.  Typically, operating systems have a shell script
406 -that ``exports'' configurations for variable definitions and uses
407 -another shell script that ``sources'' the configuration file into the
408 -environment and then executes @code{updatedb} in the environment.
409 -
410 -@table @code
411 -@item --findoptions='@var{OPTION}@dots{}'
412 -Global options to pass on to @code{find}.
413 -The environment variable @code{FINDOPTIONS} also sets this value.
414 -Default is none.
415 -
416 -@item --localpaths='@var{path}@dots{}'
417 -Non-network directories to put in the database.
418 -Default is @file{/}.
419 -
420 -@item --netpaths='@var{path}@dots{}'
421 -Network (NFS, AFS, RFS, etc.) directories to put in the database.
422 -The environment variable @code{NETPATHS} also sets this value.
423 -Default is none.
424 -
425 -@item --prunepaths='@var{path}@dots{}'
426 -Directories to omit from the database, which would otherwise be
427 -included.  The environment variable @code{PRUNEPATHS} also sets this
428 -value.  Default is @file{/tmp /usr/tmp /var/tmp /afs}.  The paths are
429 -used as regular expressions (with @code{find ... -regex}, so you need
430 -to specify these paths in the same way that @code{find} will encounter
431 -them.  This means for example that the paths must not include trailing
432 -slashes.
433 -
434 -@item --prunefs='@var{path}@dots{}'
435 -Filesystems to omit from the database, which would otherwise be
436 -included.  Note that files are pruned when a filesystem is reached;
437 -Any filesystem mounted under an undesired filesystem will be ignored.
438 -The environment variable @code{PRUNEFS} also sets this value.  Default
439 -is @file{nfs NFS proc}.
440 -
441 -@item --output=@var{dbfile}
442 -The database file to build.  The default is system-dependent, but
443 -when this document was formatted it was @file{@value{LOCATE_DB}}.
444 -
445 -@item --localuser=@var{user}
446 -The user to search the non-network directories as, using @code{su}.
447 -Default is to search the non-network directories as the current user.
448 -You can also use the environment variable @code{LOCALUSER} to set this user.
449 -
450 -@item --netuser=@var{user}
451 -The user to search network directories as, using @code{su}.  Default
452 -@code{user} is @code{daemon}.  You can also use the environment variable
453 -@code{NETUSER} to set this user.
454 -
455 -@item --old-format
456 -Generate a @code{locate} database in the old format, for compatibility
457 -with versions of @code{locate} other than GNU @code{locate}.  Using
458 -this option means that @code{locate} will not be able to properly
459 -handle non-ASCII characters in file names (that is, file names
460 -containing characters which have the eighth bit set, such as many of
461 -the characters from the ISO-8859-1 character set).  @xref{Database
462 -Formats}, for a detailed description of the supported database
463 -formats.
464 -
465 -@item --dbformat=@var{FORMAT}
466 -Generate the locate database in format @code{FORMAT}.  Supported
467 -database formats include @code{LOCATE02} (which is the default),
468 -@code{old} and @code{slocate}.  The @code{old} format exists for
469 -compatibility with implementations of @code{locate} on other Unix
470 -systems.  The @code{slocate} format exists for compatibility with
471 -@code{slocate}.  @xref{Database Formats}, for a detailed description
472 -of each format.
473 -
474 -@item --help
475 -Print a summary of the command line usage and exit.
476 -@item --version
477 -Print the version number of @code{updatedb} and exit.
478 -@end table
479 -
480 -@node Invoking xargs
481 +@node xargs
482  @section Invoking @code{xargs}
483  
484  @example
485 @@ -5091,8 +4698,6 @@
486  @menu
487  * Error Messages From find::
488  * Error Messages From xargs::
489 -* Error Messages From locate::
490 -* Error Messages From updatedb::
491  @end menu
492  
493  @node Error Messages From find
494 @@ -5223,38 +4828,6 @@
495  See the description of the similar message for @code{find}.
496  @end table
497  
498 -@node Error Messages From locate
499 -@section Error Messages From @code{locate}
500 -
501 -@table @samp
502 -@item warning: database @file{@value{LOCATE_DB}} is more than 8 days old
503 -The @code{locate} program relies on a database which is periodically
504 -built by the @code{updatedb} program.  That hasn't happened in a long
505 -time.  To fix this problem, run @code{updatedb} manually.  This can
506 -often happen on systems that are generally not left on, so the
507 -periodic ``cron'' task which normally does this doesn't get a chance
508 -to run.
509 -
510 -@item locate database @file{@value{LOCATE_DB}} is corrupt or invalid
511 -This should not happen.  Re-run @code{updatedb}.  If that works, but
512 -@code{locate} still produces this error, run @code{locate --version}
513 -and @code{updatedb --version}.  These should produce the same output.
514 -If not, you are using a mixed toolset; check your @samp{$PATH}
515 -environment variable and your shell aliases (if you have any).  If
516 -both programs claim to be GNU versions, this is a bug; all versions of
517 -these programs should interoperate without problem.  Ask for help on
518 -@email{bug-findutils@@gnu.org}.
519 -@end table
520 -
521 -
522 -@node Error Messages From updatedb
523 -@section Error Messages From updatedb
524 -
525 -The @code{updatedb} program (and the programs it invokes) do issue
526 -error messages, but none seem to be candidates for guidance.  If
527 -you are having a problem understanding one of these, ask for help on
528 -@email{bug-findutils@@gnu.org}.
529 -
530  @node GNU Free Documentation License
531  @appendix GNU Free Documentation License
532  @include fdl.texi
This page took 0.069709 seconds and 3 git commands to generate.