forked from pld-linux/findutils
-
Notifications
You must be signed in to change notification settings - Fork 0
/
findutils-info.patch
787 lines (762 loc) · 31.3 KB
/
findutils-info.patch
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
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
--- findutils-4.9.0/doc/find.texi.orig 2022-02-02 01:14:41.000000000 +0100
+++ findutils-4.9.0/doc/find.texi 2022-03-15 13:06:22.318347936 +0100
@@ -13,17 +13,11 @@
@finalout
@end iftex
-@dircategory Basics
+@dircategory Shell utilities:
@direntry
-* Finding files: (find). Operating on files matching certain criteria.
-@end direntry
-
-@dircategory Individual utilities
-@direntry
-* find: (find)Invoking find. Finding and acting on files.
-* locate: (find)Invoking locate. Finding files in a database.
-* updatedb: (find)Invoking updatedb. Building the locate database.
-* xargs: (find)Invoking xargs. Operating on many files.
+* Finding files: (find). Operating on files matching certain criteria
+* find: (find)find. Finding and acting on files
+* xargs: (find)xargs. Operating on many files
@end direntry
@copying
@@ -68,7 +62,6 @@
* Introduction:: Summary of the tasks this manual describes.
* Finding Files:: Finding files that match certain criteria.
* Actions:: Doing things to files you have found.
-* Databases:: Maintaining file name databases.
* File Permissions:: How to control access to files.
* Date input formats:: Specifying literal times.
* Configuration:: Options you can select at compile time.
@@ -87,16 +80,14 @@
This manual shows how to find files that meet criteria you specify,
and how to perform various actions on the files that you find. The
principal programs that you use to perform these tasks are
-@code{find}, @code{locate}, and @code{xargs}. Some of the examples in
+@code{find} and @code{xargs}. Some of the examples in
this manual use capabilities specific to the GNU versions of those
programs.
GNU @code{find} was originally written by Eric Decker, with
enhancements by David MacKenzie, Jay Plett, and Tim Wood. GNU
@code{xargs} was originally written by Mike Rendell, with enhancements
-by David MacKenzie. GNU @code{locate} and its associated utilities
-were originally written by James Woods, with enhancements by David
-MacKenzie. The idea for @samp{find -print0} and @samp{xargs -0} came
+by David MacKenzie. The idea for @samp{find -print0} and @samp{xargs -0} came
from Dan Bernstein. The current maintainer of GNU findutils (and this
manual) is James Youngman. Many other people have contributed bug
fixes, small improvements, and helpful suggestions. Thanks!
@@ -122,7 +113,7 @@
@itemize @bullet
@item The version of the software you are running. You can find this
-out by running @samp{locate --version}.
+out by running @samp{find --version}.
@item What you were trying to do
@item The @emph{exact} command line you used
@item The @emph{exact} output you got (if this is very long, try to
@@ -220,9 +211,7 @@
@section Overview
The principal programs used for making lists of files that match given
-criteria and running commands on them are @code{find}, @code{locate},
-and @code{xargs}. An additional command, @code{updatedb}, is used by
-system administrators to create databases for @code{locate} to use.
+criteria and running commands on them are @code{find} and @code{xargs}.
@code{find} searches for files in a directory hierarchy and prints
information about the files it found. It is run like this:
@@ -242,23 +231,6 @@
Notice that the wildcard must be enclosed in quotes in order to
protect it from expansion by the shell.
-@code{locate} searches special file name databases for file names that
-match patterns. The system administrator runs the @code{updatedb}
-program to create the databases. @code{locate} is run like this:
-
-@example
-locate @r{[}@var{option}@dots{}@r{]} @var{pattern}@dots{}
-@end example
-
-@noindent
-This example prints the names of all files in the default file name
-database whose name ends with @samp{Makefile} or @samp{makefile}.
-Which file names are stored in the database depends on how the system
-administrator ran @code{updatedb}.
-@example
-locate '*[Mm]akefile'
-@end example
-
The name @code{xargs}, pronounced EX-args, means ``combine
arguments.'' @code{xargs} builds and executes command lines by
gathering together arguments it reads on the standard input. Most
@@ -462,7 +434,6 @@
@menu
* Base Name Patterns::
* Full Name Patterns::
-* Fast Full Name Search::
* Shell Pattern Matching:: Wildcards used by these programs.
@end menu
@@ -614,82 +585,10 @@
@end deffn
-@node Fast Full Name Search
-@subsection Fast Full Name Search
-
-To search for files by name without having to actually scan the
-directories on the disk (which can be slow), you can use the
-@code{locate} program. For each shell pattern you give it,
-@code{locate} searches one or more databases of file names and
-displays the file names that contain the pattern. @xref{Shell Pattern
-Matching}, for details about shell patterns.
-
-If a pattern is a plain string -- it contains no
-metacharacters -- @code{locate} displays all file names in the database
-that contain that string. If a pattern contains
-metacharacters, @code{locate} only displays file names that match the
-pattern exactly. As a result, patterns that contain metacharacters
-should usually begin with a @samp{*}, and will most often end with one
-as well. The exceptions are patterns that are intended to explicitly
-match the beginning or end of a file name.
-
-If you only want @code{locate} to match against the last component of
-the file names (the ``base name'' of the files) you can use the
-@samp{--basename} option. The opposite behaviour is the default, but
-can be selected explicitly by using the option @samp{--wholename}.
-
-The command
-@example
-locate @var{pattern}
-@end example
-
-is almost equivalent to
-@example
-find @var{directories} -name @var{pattern}
-@end example
-
-where @var{directories} are the directories for which the file name
-databases contain information. The differences are that the
-@code{locate} information might be out of date, and that @code{locate}
-handles wildcards in the pattern slightly differently than @code{find}
-(@pxref{Shell Pattern Matching}).
-
-The file name databases contain lists of files that were on the system
-when the databases were last updated. The system administrator can
-choose the file name of the default database, the frequency with which
-the databases are updated, and the directories for which they contain
-entries.
-
-Here is how to select which file name databases @code{locate}
-searches. The default is system-dependent. At the time this document
-was generated, the default was @file{@value{LOCATE_DB}}.
-
-@table @code
-@item --database=@var{path}
-@itemx -d @var{path}
-Instead of searching the default file name database, search the file
-name databases in @var{path}, which is a colon-separated list of
-database file names. You can also use the environment variable
-@env{LOCATE_PATH} to set the list of database files to search. The
-option overrides the environment variable if both are used.
-@end table
-
-GNU @code{locate} can read file name databases generated by the
-@code{slocate} package. However, these generally contain a list of
-all the files on the system, and so when using this database,
-@code{locate} will produce output only for files which are accessible
-to you. @xref{Invoking locate}, for a description of the
-@samp{--existing} option which is used to do this.
-
-The @code{updatedb} program can also generate database in a format
-compatible with @code{slocate}. @xref{Invoking updatedb}, for a
-description of its @samp{--dbformat} and @samp{--output} options.
-
-
@node Shell Pattern Matching
@subsection Shell Pattern Matching
-@code{find} and @code{locate} can compare file names, or parts of file
+@code{find} and can compare file names, or parts of file
names, to shell patterns. A @dfn{shell pattern} is a string that may
contain the following special characters, which are known as
@dfn{wildcards} or @dfn{metacharacters}.
@@ -3069,245 +2968,6 @@
@end example
-@node Databases
-@chapter File Name Databases
-
-The file name databases used by @code{locate} contain lists of files
-that were in particular directory trees when the databases were last
-updated. The file name of the default database is determined when
-@code{locate} and @code{updatedb} are configured and installed. The
-frequency with which the databases are updated and the directories for
-which they contain entries depend on how often @code{updatedb} is run,
-and with which arguments.
-
-You can obtain some statistics about the databases by using
-@samp{locate --statistics}.
-
-@menu
-* Database Locations::
-* Database Formats::
-* Newline Handling::
-@end menu
-
-
-@node Database Locations
-@section Database Locations
-
-There can be multiple file name databases. Users can select which
-databases @code{locate} searches using the @env{LOCATE_PATH}
-environment variable or a command line option. The system
-administrator can choose the file name of the default database, the
-frequency with which the databases are updated, and the directories
-for which they contain entries. File name databases are updated by
-running the @code{updatedb} program, typically nightly.
-
-In networked environments, it often makes sense to build a database at
-the root of each filesystem, containing the entries for that
-filesystem. @code{updatedb} is then run for each filesystem on the
-fileserver where that filesystem is on a local disk, to prevent
-thrashing the network.
-
-@xref{Invoking updatedb}, for the description of the options to
-@code{updatedb}. These options can be used to specify which
-directories are indexed by each database file.
-
-The default location for the locate database depends on how findutils
-is built, but the findutils installation accompanying this manual uses
-the default location @file{@value{LOCATE_DB}}.
-
-If no database exists at @file{@value{LOCATE_DB}} but the user did not
-specify where to look (by using @samp{-d} or setting
-@env{LOCATE_PATH}), then @code{locate} will also check for a
-``secure'' database in @file{/var/lib/slocate/slocate.db}.
-
-@node Database Formats
-@section Database Formats
-
-The file name databases contain lists of files that were in particular
-directory trees when the databases were last updated. The file name
-database format changed starting with GNU @code{locate} version 4.0 to
-allow machines with different byte orderings to share the databases.
-
-GNU @code{locate} can read both the old pre-findutils-4.0 database
-format and the @samp{LOCATE02} database format. Support for the old
-database format will shortly be removed from @code{locate}. It has
-already been removed from @code{updatedb}.
-
-If you run @samp{locate --statistics}, the resulting summary indicates
-the type of each @code{locate} database. You select which database
-format @code{updatedb} will use with the @samp{--dbformat} option.
-
-The @samp{slocate} database format is very similar to @samp{LOCATE02}
-and is also supported (in both @code{updatedb} and @code{locate}).
-
-@menu
-* LOCATE02 Database Format::
-* Sample LOCATE02 Database::
-* slocate Database Format::
-* Old Database Format::
-@end menu
-
-@node LOCATE02 Database Format
-@subsection LOCATE02 Database Format
-
-@code{updatedb} runs a program called @code{frcode} to
-@dfn{front-compress} the list of file names, which reduces the
-database size by a factor of 4 to 5. Front-compression (also known as
-incremental encoding) works as follows.
-
-The database entries are a sorted list (case-insensitively, for users'
-convenience). Since the list is sorted, each entry is likely to share
-a prefix (initial string) with the previous entry. Each database
-entry begins with an offset-differential count byte, which is the
-additional number of characters of prefix of the preceding entry to
-use beyond the number that the preceding entry is using of its
-predecessor. (The counts can be negative.) Following the count is a
-null-terminated ASCII remainder -- the part of the name that follows
-the shared prefix.
-
-If the offset-differential count is larger than can be stored in a
-byte (+/-127), the byte has the value 0x80 and the count follows in a
-2-byte word, with the high byte first (network byte order).
-
-Every database begins with a dummy entry for a file called
-@file{LOCATE02}, which @code{locate} checks for to ensure that the
-database file has the correct format; it ignores the entry in doing
-the search.
-
-Databases cannot be concatenated together, even if the first (dummy)
-entry is trimmed from all but the first database. This is because the
-offset-differential count in the first entry of the second and
-following databases will be wrong.
-
-In the output of @samp{locate --statistics}, the new database format
-is referred to as @samp{LOCATE02}.
-
-@node Sample LOCATE02 Database
-@subsection Sample LOCATE02 Database
-
-Sample input to @code{frcode}:
-@c with nulls changed to newlines:
-
-@example
-/usr/src
-/usr/src/cmd/aardvark.c
-/usr/src/cmd/armadillo.c
-/usr/tmp/zoo
-@end example
-
-Length of the longest prefix of the preceding entry to share:
-
-@example
-0 /usr/src
-8 /cmd/aardvark.c
-14 rmadillo.c
-5 tmp/zoo
-@end example
-
-Output from @code{frcode}, with trailing nulls changed to newlines
-and count bytes made printable:
-
-@example
-0 LOCATE02
-0 /usr/src
-8 /cmd/aardvark.c
-6 rmadillo.c
--9 tmp/zoo
-@end example
-
-(6 = 14 - 8, and -9 = 5 - 14)
-
-@node slocate Database Format
-@subsection slocate Database Format
-
-The @code{slocate} program uses a database format similar to, but not
-quite the same as, GNU @code{locate}. The first byte of the database
-specifies its @dfn{security level}. If the security level is 0,
-@code{slocate} will read, match and print filenames on the basis of
-the information in the database only. However, if the security level
-byte is 1, @code{slocate} omits entries from its output if the
-invoking user is unable to access them. The second byte of the
-database is zero. The second byte is immediately followed by the
-first database entry. The first entry in the database is not preceded
-by any differential count or dummy entry. Instead the differential
-count for the first item is assumed to be zero.
-
-Starting with the second entry (if any) in the database, data is
-interpreted as for the GNU LOCATE02 format.
-
-@node Old Database Format
-@subsection Old Database Format
-
-The old database format is used by Unix @code{locate} and @code{find}
-programs and pre-4.0 releases of GNU findutils. @code{locate}
-understands this format, though @code{updatedb} will no longer produce
-it.
-
-The old format differs from @samp{LOCATE02} in the following ways.
-Instead of each entry starting with an offset-differential count byte
-and ending with a null, byte values from 0 through 28 indicate
-offset-differential counts from -14 through 14. The byte value
-indicating that a long offset-differential count follows is 0x1e (30),
-not 0x80. The long counts are stored in host byte order, which is not
-necessarily network byte order, and host integer word size, which is
-usually 4 bytes. They also represent a count 14 less than their
-value. The database lines have no termination byte; the start of the
-next line is indicated by its first byte having a value <= 30.
-
-In addition, instead of starting with a dummy entry, the old database
-format starts with a 256 byte table containing the 128 most common
-bigrams in the file list. A bigram is a pair of adjacent bytes.
-Bytes in the database that have the high bit set are indexes (with the
-high bit cleared) into the bigram table. The bigram and
-offset-differential count coding makes these databases 20-25% smaller
-than the new format, but makes them not 8-bit clean. Any byte in a
-file name that is in the ranges used for the special codes is replaced
-in the database by a question mark, which not coincidentally is the
-shell wildcard to match a single character. The old format therefore
-cannot faithfully store entries with non-ASCII characters.
-
-Because the long counts are stored as
-native-order machine words, the database format is not easily used in
-environments which differ in terms of byte order. If locate databases
-are to be shared between machines, the @samp{LOCATE02} database format should
-be used. This has other benefits as discussed above. However, the
-length of the filename currently being processed can normally be used
-to place reasonable limits on the long counts and so this information
-is used by locate to help it guess the byte ordering of the old format
-database. Unless it finds evidence to the contrary, @code{locate}
-will assume that the byte order of the database is the same as the
-native byte order of the machine running @code{locate}. The output of
-@samp{locate --statistics} also includes information about the byte
-order of old-format databases.
-
-The output of @samp{locate --statistics} will give an incorrect count
-of the number of file names containing newlines or high-bit characters
-for old-format databases.
-
-Old versions of GNU @code{locate} fail to correctly handle very long
-file names, possibly leading to security problems relating to a heap
-buffer overrun. @xref{Security Considerations for locate}, for a
-detailed explanation.
-
-@node Newline Handling
-@section Newline Handling
-
-Within the database, file names are terminated with a null character.
-This is the case for both the old and the new format.
-
-When the new database format is being used, the compression technique
-used to generate the database though relies on the ability to sort the
-list of files before they are presented to @code{frcode}.
-
-If the system's sort command allows separating its input list of
-files with null characters via the @samp{-z} option, this option
-is used and therefore @code{updatedb} and @code{locate} will both
-correctly handle file names containing newlines. If the @code{sort}
-command lacks support for this, the list of files is delimited with
-the newline character, meaning that parts of file names containing
-newlines will be incorrectly sorted. This can result in both
-incorrect matches and incorrect failures to match.
-
@node File Permissions
@chapter File Permissions
@@ -3370,15 +3030,13 @@
discussed in this manual.
@menu
-* Invoking find::
-* Invoking locate::
-* Invoking updatedb::
-* Invoking xargs::
+* find::
+* xargs::
* Regular Expressions::
* Environment Variables::
@end menu
-@node Invoking find
+@node find
@section Invoking @code{find}
@example
@@ -3593,243 +3251,7 @@
actions, and options that the expression can contain. If the
expression is missing, @samp{-print} is assumed.
-@node Invoking locate
-@section Invoking @code{locate}
-
-@example
-locate @r{[}@var{option}@dots{}@r{]} @var{pattern}@dots{}
-@end example
-
-For each @var{pattern} given @code{locate} searches one or more file
-name databases returning each match of @var{pattern}.
-
-@table @code
-@item --all
-@itemx -A
-Print only names which match all non-option arguments, not those
-matching one or more non-option arguments.
-
-@item --basename
-@itemx -b
-The specified pattern is matched against just the last component of
-the name of a file in the @code{locate} database. This last
-component is also called the ``base name''. For example, the base
-name of @file{/tmp/mystuff/foo.old.c} is @file{foo.old.c}. If the
-pattern contains metacharacters, it must match the base name exactly.
-If not, it must match part of the base name.
-
-@item --count
-@itemx -c
-Instead of printing the matched file names, just print the total
-number of matches found, unless @samp{--print} (@samp{-p}) is also
-present.
-
-
-@item --database=@var{path}
-@itemx -d @var{path}
-Instead of searching the default @code{locate} database
-@file{@value{LOCATE_DB}}, @code{locate} searches the file
-name databases in @var{path}, which is a colon-separated list of
-database file names. You can also use the environment variable
-@env{LOCATE_PATH} to set the list of database files to search. The
-option overrides the environment variable if both are used. Empty
-elements in @var{path} (that is, a leading or trailing colon, or two
-colons in a row) are taken to stand for the default database.
-A database can be supplied on stdin, using @samp{-} as an element
-of @samp{path}. If more than one element of @samp{path} is @samp{-},
-later instances are ignored (but a warning message is printed).
-
-@item --existing
-@itemx -e
-Only print out such names which currently exist (instead of such names
-which existed when the database was created). Note that this may slow
-down the program a lot, if there are many matches in the database.
-The way in which broken symbolic links are treated is affected by the
-@samp{-L}, @samp{-P} and @samp{-H} options. Please note that it is
-possible for the file to be deleted after @code{locate} has checked
-that it exists, but before you use it. This option is automatically
-turned on when reading an @code{slocate} database in secure mode
-(@pxref{slocate Database Format}).
-
-@item --non-existing
-@itemx -E
-Only print out such names which currently do not exist (instead of
-such names which existed when the database was created). Note that
-this may slow down the program a lot, if there are many matches in the
-database. The way in which broken symbolic links are treated is
-affected by the @samp{-L}, @samp{-P} and @samp{-H} options. Please
-note that @code{locate} checks that the file does not exist, but a
-file of the same name might be created after @code{locate}'s check but
-before you read @code{locate}'s output.
-
-@item --follow
-@itemx -L
-If testing for the existence of files (with the @samp{-e} or @samp{-E}
-options), consider broken symbolic links to be non-existing. This is
-the default behaviour.
-
-@item --nofollow
-@itemx -P
-@itemx -H
-If testing for the existence of files (with the @samp{-e} or @samp{-E}
-options), treat broken symbolic links as if they were existing files.
-The @samp{-H} form of this option is provided purely for similarity
-with @code{find}; the use of @samp{-P} is recommended over @samp{-H}.
-
-@item --ignore-case
-@itemx -i
-Ignore case distinctions in both the pattern and the file names.
-
-@item --limit=N
-@itemx -l N
-Limit the number of results printed to N. When used with the
-@samp{--count} option, the value printed will never be larger than
-this limit.
-@item --max-database-age=D
-Normally, @code{locate} will issue a warning message when it searches
-a database which is more than 8 days old. This option changes that
-value to something other than 8. The effect of specifying a negative
-value is undefined.
-@item --mmap
-@itemx -m
-Accepted but does nothing. The option is supported only to provide
-compatibility with BSD's @code{locate}.
-
-@item --null
-@itemx -0
-Results are separated with the ASCII NUL character rather than the
-newline character. To get the full benefit of this option,
-use the new @code{locate} database format (that is the default
-anyway).
-
-@item --print
-@itemx -p
-Print search results when they normally would not be due to
-use of @samp{--statistics} (@samp{-S}) or @samp{--count}
-(@samp{-c}).
-
-@item --wholename
-@itemx -w
-The specified pattern is matched against the whole name of the file in
-the @code{locate} database. If the pattern contains metacharacters,
-it must match exactly. If not, it must match part of the whole file
-name. This is the default behaviour.
-
-@item --regex
-@itemx -r
-Instead of using substring or shell glob matching, the pattern
-specified on the command line is understood to be a regular
-expression. GNU Emacs-style regular expressions are assumed unless
-the @samp{--regextype} option is also given. File names from the
-@code{locate} database are matched using the specified regular
-expression. If the @samp{-i} flag is also given, matching is
-case-insensitive. Matches are performed against the whole path name,
-and so by default a pathname will be matched if any part of it matches
-the specified regular expression. The regular expression may use
-@samp{^} or @samp{$} to anchor a match at the beginning or end of a
-pathname.
-
-@item --regextype
-This option changes the regular expression syntax and behaviour used
-by the @samp{--regex} option. @ref{Regular Expressions} for more
-information on the regular expression dialects understood by GNU
-findutils.
-
-@item --stdio
-@itemx -s
-Accepted but does nothing. The option is supported only to provide
-compatibility with BSD's @code{locate}.
-
-@item --statistics
-@itemx -S
-Print some summary information for each @code{locate} database. No
-search is performed unless non-option arguments are given.
-Although the BSD version of locate also has this option, the format of the
-output is different.
-
-@item --help
-Print a summary of the command line usage for @code{locate} and exit.
-
-@item --version
-Print the version number of @code{locate} and exit.
-@end table
-
-@node Invoking updatedb
-@section Invoking @code{updatedb}
-
-@example
-updatedb @r{[}@var{option}@dots{}@r{]}
-@end example
-
-@code{updatedb} creates and updates the database of file names used by
-@code{locate}. @code{updatedb} generates a list of files similar to
-the output of @code{find} and then uses utilities for optimizing the
-database for performance. @code{updatedb} is often run periodically
-as a @code{cron} job and configured with environment variables or
-command options. Typically, operating systems have a shell script
-that ``exports'' configurations for variable definitions and uses
-another shell script that ``sources'' the configuration file into the
-environment and then executes @code{updatedb} in the environment.
-
-@table @code
-@item --findoptions='@var{OPTION}@dots{}'
-Global options to pass on to @code{find}.
-The environment variable @env{FINDOPTIONS} also sets this value.
-Default is none.
-
-@item --localpaths='@var{path}@dots{}'
-Non-network directories to put in the database.
-Default is @file{/}.
-
-@item --netpaths='@var{path}@dots{}'
-Network (NFS, AFS, RFS, etc.) directories to put in the database.
-The environment variable @env{NETPATHS} also sets this value.
-Default is none.
-
-@item --prunepaths='@var{path}@dots{}'
-Directories to omit from the database, which would otherwise be
-included. The environment variable @env{PRUNEPATHS} also sets this
-value. Default is @file{/tmp /usr/tmp /var/tmp /afs}. The paths are
-used as regular expressions (with @code{find ... -regex}, so you need
-to specify these paths in the same way that @code{find} will encounter
-them. This means for example that the paths must not include trailing
-slashes.
-
-@item --prunefs='@var{path}@dots{}'
-Filesystems to omit from the database, which would otherwise be
-included. Note that files are pruned when a filesystem is reached;
-Any filesystem mounted under an undesired filesystem will be ignored.
-The environment variable @env{PRUNEFS} also sets this value. Default
-is @file{nfs NFS proc}.
-
-@item --output=@var{dbfile}
-The database file to build. The default is system-dependent, but
-when this document was formatted it was @file{@value{LOCATE_DB}}.
-
-@item --localuser=@var{user}
-The user to search the non-network directories as, using @code{su}.
-Default is to search the non-network directories as the current user.
-You can also use the environment variable @env{LOCALUSER} to set this user.
-
-@item --netuser=@var{user}
-The user to search network directories as, using @code{su}. Default
-@code{user} is @code{daemon}. You can also use the environment variable
-@env{NETUSER} to set this user.
-
-@item --dbformat=@var{FORMAT}
-Generate the locate database in format @code{FORMAT}. Supported
-database formats include @code{LOCATE02} (which is the default) and
-@code{slocate}. The @code{slocate} format exists for compatibility
-with @code{slocate}. @xref{Database Formats}, for a detailed
-description of each format.
-
-@item --help
-Print a summary of the command line usage and exit.
-@item --version
-Print the version number of @code{updatedb} and exit.
-@end table
-
-@node Invoking xargs
+@node xargs
@section Invoking @code{xargs}
@example
@@ -5180,7 +4602,6 @@
* Levels of Risk:: What is your level of exposure to security problems?
* Security Considerations for find:: Security problems with find
* Security Considerations for xargs:: Security problems with xargs
-* Security Considerations for locate:: Security problems with locate
* Security Summary:: That was all very complex, what does it boil down to?
* Further Reading on Security::
@end menu
@@ -5589,19 +5010,6 @@
trailing whitespace is turned off by the @samp{-0} argument to
@code{xargs}, which is another reason to use that option.
-@comment node-name, next, previous, up
-@node Security Considerations for locate
-@section Security Considerations for @code{locate}
-
-@subsection Race Conditions
-It is fairly unusual for the output of @code{locate} to be fed into
-another command. However, if this were to be done, this would raise
-the same set of security issues as the use of @samp{find @dots{} -print}.
-Although the problems relating to whitespace in file names can be
-resolved by using @code{locate}'s @samp{-0} option, this still leaves
-the race condition problems associated with @samp{find @dots{} -print0}.
-There is no way to avoid these problems in the case of @code{locate}.
-
@node Security Summary
@section Summary
@@ -5673,8 +5081,6 @@
@menu
* Error Messages From find::
* Error Messages From xargs::
-* Error Messages From locate::
-* Error Messages From updatedb::
@end menu
@node Error Messages From find
@@ -5824,38 +5230,6 @@
See the manual of the system call @code{dup2(2)}.
@end table
-@node Error Messages From locate
-@section Error Messages From @code{locate}
-
-@table @samp
-@item warning: database @file{@value{LOCATE_DB}} is more than 8 days old
-The @code{locate} program relies on a database which is periodically
-built by the @code{updatedb} program. That hasn't happened in a long
-time. To fix this problem, run @code{updatedb} manually. This can
-often happen on systems that are generally not left on, so the
-periodic ``cron'' task which normally does this doesn't get a chance
-to run.
-
-@item locate database @file{@value{LOCATE_DB}} is corrupt or invalid
-This should not happen. Re-run @code{updatedb}. If that works, but
-@code{locate} still produces this error, run @code{locate --version}
-and @code{updatedb --version}. These should produce the same output.
-If not, you are using a mixed toolset; check your @env{PATH}
-environment variable and your shell aliases (if you have any). If
-both programs claim to be GNU versions, this is a bug; all versions of
-these programs should interoperate without problem. Ask for help on
-@email{bug-findutils@@gnu.org}.
-@end table
-
-
-@node Error Messages From updatedb
-@section Error Messages From @code{updatedb}
-
-The @code{updatedb} program (and the programs it invokes) do issue
-error messages, but none seem to be candidates for guidance. If
-you are having a problem understanding one of these, ask for help on
-@email{bug-findutils@@gnu.org}.
-
@node GNU Free Documentation License
@appendix GNU Free Documentation License
@include fdl.texi
--- findutils-4.9.0/doc/find-maint.texi.orig 2022-02-02 00:27:31.000000000 +0100
+++ findutils-4.9.0/doc/find-maint.texi 2022-03-15 18:57:59.228173120 +0100
@@ -12,9 +12,9 @@
@finalout
@end iftex
-@dircategory GNU organization
+@dircategory GNU organization:
@direntry
-* Maintaining Findutils: (find-maint). Maintaining GNU findutils
+* Maintaining Findutils: (find-maint). Maintaining GNU findutils
@end direntry
@copying