Hello, The current version of the --exclude documentation says the following:
``` ‘--exclude=GLOB’ Skip any command-line file with a name suffix that matches the pattern GLOB, using wildcard matching; a name suffix is either the whole name, or a trailing part that starts with a non-slash character immediately after a slash (‘/’) in the name. When searching recursively, skip any subfile whose base name matches GLOB; the base name is the part after the last slash. A pattern can use ‘*’, ‘?’, and ‘[’...‘]’ as wildcards, and ‘\’ to quote a wildcard or backslash character literally. ``` I think that "Skip any command-line file" should be replaced with "Skip any file", because --exclude does work even if files are not provided as explicit command-line arguments (for example, when using -r). While it could be ambiguous, this interpretation of "command-line file" meaning "files explicitly provided as command-line arguments" is consistent with the documentation for --devices, which makes an explicit distinction between "command-line devices" and "devices that are encountered recursively": ``` ‘-D ACTION’ ‘--devices=ACTION’ If an input file is a device, FIFO, or socket, use ACTION to process it. If ACTION is ‘read’, all devices are read just as if they were ordinary files. If ACTION is ‘skip’, devices, FIFOs, and sockets are silently skipped. By default, devices are read if they are on the command line or if the ‘-R’ (‘--dereference-recursive’) option is used, and are skipped if they are encountered recursively and the ‘-r’ (‘--recursive’) option is used. This option has no effect on a file that is read via standard input. ``` Another significant argument in favor of the proposed change is that the similar --include option doesn't mention "command-line files": ``` ‘--include=GLOB’ Search only files whose name matches GLOB, using wildcard matching as described under ‘--exclude’. If contradictory ‘--include’ and ‘--exclude’ options are given, the last matching one wins. If no ‘--include’ or ‘--exclude’ options match, a file is included unless the first such option is ‘--include’. ```