Re: inconsistent behavior of extglobs at start of pattern re dotfiles
Chet Ramey <[email protected]> Wed, 11 Mar 2026 11:13:26 -0400
| Newsgroups | gmane.comp.shells.bash.bugs |
|---|---|
| Organization | ITS, Case Western Reserve University |
| Message-ID | <[email protected]> |
On 3/6/26 12:14 PM, Isaac Z. Schlueter wrote: > Bash Version: 5.3 > Patch Level: 9 > Release Status: release > > Description: > A negative extglob can match the empty string. Also, extglobs that appear > at the start of a pattern can match a dotfile, if they match a dot > explicitly. > > However, a negative extglob (or other extglob matching an empty string) > that comes ahead of a dot in a pattern will *not* allow that pattern to > match a dotfile. This seems inconsistent with the "Pathname expansion" > section, which states only that a '.' at the start (or immediatly following > a slash) must be "matched explicitly" unless dotglob is set. That is, it > seems that it *is* being "matched explicitly", but the path is not being > expanded as expected. Thanks for the report. The issue is the null pattern in the extglob. The bash glob code uses a function to determine whether a name should be skipped instead of run through the matching engine, and that function didn't allow the null pattern to match a filename beginning with a `.'. It should allow the name and let the rest of the matcher determine whether or not to match it. If there are other patterns in the list that begin with a `.', those are sufficient whether or not there is an empty pattern in the list, but the empty pattern itself shouldn't disqualify the pattern list. -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, UTech, CWRU [email protected] http://tiswww.cwru.edu/~chet/
OpenPGP_signature.asc
(application/pgp-signature, 203 B)
-----BEGIN PGP SIGNATURE----- wmMEABEIACMWIQR8ATX7CIqvbGbGULm7WGnwZOp0qwUCabGGlgUDAAAAAAAKCRC7WGnwZOp0qyt4 AJ0QunngDlVXQxnOxjEgIDazjbzI7ACdG19uQG34ViMO1jLVNFgOTIxDW4o= =xyP1 -----END PGP SIGNATURE-----