X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=findutils-info.patch;h=1e527f4a6970cefb035ccb3a6153becbd6077259;hb=HEAD;hp=762a26a79deb00876247dc5b226b128954bbd430;hpb=5762eda7731107d8c7b79f445f3e8d5cdf485f96;p=packages%2Ffindutils.git diff --git a/findutils-info.patch b/findutils-info.patch index 762a26a..59b556a 100644 --- a/findutils-info.patch +++ b/findutils-info.patch @@ -1,6 +1,6 @@ ---- findutils-4.2.32/doc/find.texi.orig 2007-12-08 17:00:30.000000000 +0100 -+++ findutils-4.2.32/doc/find.texi 2008-01-26 00:37:49.666750899 +0100 -@@ -12,17 +12,11 @@ +--- findutils-4.10.0/doc/find.texi.orig 2024-05-27 22:20:21.000000000 +0200 ++++ findutils-4.10.0/doc/find.texi 2024-06-05 20:45:38.910140536 +0200 +@@ -13,17 +13,11 @@ @finalout @end iftex @@ -12,28 +12,425 @@ - -@dircategory Individual utilities -@direntry --* find: (find)Invoking find. Finding and acting on files. +-* find: (find)Finding Files. 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 ++* find: (find)Finding Files. Finding and acting on files +* xargs: (find)xargs. Operating on many files @end direntry @copying -@@ -2406,10 +2400,6 @@ - fileserver where that filesystem is on a local disk, to prevent - thrashing the network. +@@ -68,7 +62,6 @@ A copy of the license is included in the + * 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. +@@ -77,7 +70,7 @@ A copy of the license is included in the + * Worked Examples:: Examples demonstrating more complex points. + * Security Considerations:: Security issues relating to findutils. + * Error Messages:: Explanations of some messages you might see. +-* History:: History of find, xargs and locate. ++* History:: History of find and xargs. + * GNU Free Documentation License:: Copying and sharing this manual. + * Primary Index:: The components of @code{find} expressions. + @end menu +@@ -88,11 +81,11 @@ A copy of the license is included in the + 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. + +-See @ref{History} for a history of @code{find}, @code{locate} and ++See @ref{History} for a history of @code{find} and + @code{xargs}. The current maintainers of GNU findutils (and this + manual) are Bernhard Voelker and James Youngman. Many other people + have contributed bug fixes, small improvements, and helpful +@@ -120,7 +113,7 @@ you much more effectively if you include + + @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 +@@ -218,9 +211,7 @@ This manual describes how to perform eac + @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: +@@ -240,23 +231,6 @@ find /usr/src -name '*.c' -size +100k -p + 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 +@@ -459,7 +433,6 @@ etc. + @menu + * Base Name Patterns:: + * Full Name Patterns:: +-* Fast Full Name Search:: + * Shell Pattern Matching:: Wildcards used by these programs. + @end menu + +@@ -609,78 +582,6 @@ expression dialects understood by GNU fi + + @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 by default +-@code{locate} matches wildcards against the whole file name (not just +-its base name) (@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 --@xref{Invoking updatedb}, --for the description of the options to @code{updatedb}, which specify --which directories would each database contain entries for. +@@ -3081,245 +2982,6 @@ find /usr/local -type f -perm /a=x \ + @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 - @node Database Formats - @section Database Formats -@@ -2590,15 +2580,13 @@ +@@ -3382,15 +3044,13 @@ Below are summaries of the command line discussed in this manual. @menu @@ -47,25 +444,16 @@ * Environment Variables:: @end menu --@node Invoking find, Invoking locate, , Reference -+@node find, xargs, , Reference +-@node Invoking find ++@node find @section Invoking @code{find} @example -@@ -2669,7 +2657,7 @@ - @end menu +@@ -3613,243 +3273,7 @@ expressions. @xref{Primary Index}, for + actions, and options that the expression can contain. If the + expression is missing, @samp{-print} is assumed. - --@node Warning Messages,,, Invoking find -+@node Warning Messages,,, find - @subsection Warning Messages - - If there is an error on the @code{find} command line, an error message -@@ -2725,251 +2713,7 @@ - Use of an unrecognised formatting directive with @samp{-fprintf} - @end itemize - --@node Invoking locate, Invoking updatedb, Invoking find, Reference +-@node Invoking locate -@section Invoking @code{locate} - -@example @@ -75,9 +463,6 @@ -For each @var{pattern} given @code{locate} searches one or more file -name databases returning each match of @var{pattern}. - --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 @@ -102,10 +487,11 @@ - -@item --database=@var{path} -@itemx -d @var{path} --Instead of searching the default @code{locate} database, @code{locate} search the file +-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 --@code{LOCATE_PATH} to set the list of database files to search. The +-@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. @@ -121,7 +507,9 @@ -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. +-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 @@ -138,7 +526,7 @@ -@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. +-the default behaviour. - -@item --nofollow -@itemx -P @@ -157,7 +545,11 @@ -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 @@ -166,14 +558,14 @@ -@item --null -@itemx -0 -Results are separated with the ASCII NUL character rather than the --newline character. To get the full benefit of the use of this option, +-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, because of the --presence of @samp{--statistics} (@samp{-S}) or @samp{--count} +-Print search results when they normally would not be due to +-use of @samp{--statistics} (@samp{-S}) or @samp{--count} -(@samp{-c}). - -@item --wholename @@ -211,8 +603,8 @@ -@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 +-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 @@ -222,7 +614,7 @@ -Print the version number of @code{locate} and exit. -@end table - --@node Invoking updatedb, Invoking xargs, Invoking locate, Reference +-@node Invoking updatedb -@section Invoking @code{updatedb} - -@example @@ -239,20 +631,10 @@ -another shell script that ``sources'' the configuration file into the -environment and then executes @code{updatedb} in the environment. - --@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 @code{FINDOPTIONS} also sets this value. +-The environment variable @env{FINDOPTIONS} also sets this value. -Default is none. - -@item --localpaths='@var{path}@dots{}' @@ -261,12 +643,12 @@ - -@item --netpaths='@var{path}@dots{}' -Network (NFS, AFS, RFS, etc.) directories to put in the database. --The environment variable @code{NETPATHS} also sets this value. +-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 @code{PRUNEPATHS} also sets this +-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 @@ -277,49 +659,164 @@ -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 @code{PRUNEFS} also sets this value. Default +-The environment variable @env{PRUNEFS} also sets this value. Default -is @file{nfs NFS proc}. - -@item --output=@var{dbfile} --The database file to build. Default is system-dependent, but --typically @file{/usr/local/var/locatedb}. +-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 @code{LOCALUSER} to set this 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 --@code{NETUSER} to set this user. -- --@item --old-format --Generate a @code{locate} database in the old format, for compatibility --with versions of @code{locate} other than GNU @code{locate}. Using --this option means that @code{locate} will not be able to properly --handle non-ASCII characters in file names (that is, file names --containing characters which have the eighth bit set, such as many of --the characters from the ISO-8859-1 character set). Versions of --@code{locate} prior to 4.2.31 fail to correctly handle long filenames --in old-format databases. Versions 4.3.0 to 4.3.6 were also affected. +-@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, Regular Expressions, Invoking updatedb, Reference -+@node xargs, Regular Expressions, find, Reference +-@node Invoking xargs ++@node xargs @section Invoking @code{xargs} @example -@@ -3118,7 +2862,7 @@ +@@ -5209,7 +4633,6 @@ on what the system is going to do with t + * 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 +@@ -5610,19 +5033,6 @@ the list printed by @code{find}. The i + 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 + +@@ -5678,7 +5088,7 @@ A humorous and pithy summary of the broa + @chapter Error Messages + + This section describes some of the error messages sometimes made by +-@code{find}, @code{xargs}, or @code{locate}, explains them and in some ++@code{find} or @code{xargs} explains them and in some + cases provides advice as to what you should do about this. + + This manual is written in English. The GNU findutils software +@@ -5694,8 +5104,6 @@ listed. + @menu + * Error Messages From find:: + * Error Messages From xargs:: +-* Error Messages From locate:: +-* Error Messages From updatedb:: + @end menu + + @node Error Messages From find +@@ -5845,39 +5253,6 @@ why @code{xargs} is confused by your ope + 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 History + @chapter History --@node Regular Expressions, Environment Variables, Invoking xargs, Reference -+@node Regular Expressions, Environment Variables, xargs, Reference - @section Regular Expressions +@@ -5934,25 +5309,6 @@ GNU @code{xargs} isn't derived from the + It was originally written by Mike Rendell, with enhancements by David + MacKenzie. - The @samp{-regex} and @samp{-iregex} tests of @code{find} allow +-@section History of @code{locate} +- +-4.3-BSD introduced the @dfn{fast-find} feature, in which the command +-@code{find needle} would look for a file named @samp{needle}. This +-took advantage of the fact that, at the time, there was no valid +-two-argument @code{find} invocation. The implementation was much +-faster than searching the whole file system in real time, because it +-used a pre-built file name database. This functionality is described +-in more detail in @cite{Finding Files Fast} by James Woods (Usenix +-;login, Volume 8 Issue 1, pages. 8-10, 1983). +- +-Standardisation of @code{find} led to this functionality being moved +-into the @code{locate} program in 4.4-BSD. The command @code{find +-needle} now unambiguously means ``start searching at the file +-@code{needle} and print the names of the files you encounter''. +- +-GNU @code{locate} and its associated utilities were originally written +-by James Woods, with enhancements by David MacKenzie. +- + @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