NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ATTRIBUTES |STANDARDS |HISTORY |SEE ALSO |COLOPHON | |
fnmatch(3) Library Functions Manualfnmatch(3)fnmatch - match filename or pathname
Standard C library (libc,-lc)
#include <fnmatch.h>int fnmatch(const char *pattern, const char *string, intflags);
Thefnmatch() function checks whether thestring argument matches thepattern argument, which is a shell wildcard pattern (seeglob(7)). Theflags argument modifies the behavior; it is the bitwise OR of zero or more of the following flags:FNM_NOESCAPE If this flag is set, treat backslash as an ordinary character, instead of an escape character.FNM_PATHNAME If this flag is set, match a slash instring only with a slash inpattern and not by an asterisk (*) or a question mark (?) metacharacter, nor by a bracket expression ([]) containing a slash.FNM_PERIOD If this flag is set, a leading period instring has to be matched exactly by a period inpattern. A period is considered to be leading if it is the first character instring, or if bothFNM_PATHNAMEis set and the period immediately follows a slash.FNM_FILE_NAME This is a GNU synonym forFNM_PATHNAME.FNM_LEADING_DIR If this flag (a GNU extension) is set, the pattern is considered to be matched if it matches an initial segment ofstring which is followed by a slash. This flag is mainly for the internal use of glibc and is implemented only in certain cases.FNM_CASEFOLDFNM_IGNORECASE(same asFNM_CASEFOLD) If this flag is set, the pattern is matched case- insensitively.FNM_EXTMATCH If this flag (a GNU extension) is set, extended patterns are supported, as introduced by 'ksh' and now supported by other shells. The extended format is as follows, withpattern-list being a '|' separated list of patterns. '?(pattern-list)' The pattern matches if zero or one occurrences of any of the patterns in thepattern-list match the inputstring. '*(pattern-list)' The pattern matches if zero or more occurrences of any of the patterns in thepattern-list match the inputstring. '+(pattern-list)' The pattern matches if one or more occurrences of any of the patterns in thepattern-list match the inputstring. '@(pattern-list)' The pattern matches if exactly one occurrence of any of the patterns in thepattern-list match the inputstring. '!(pattern-list)' The pattern matches if the inputstring cannot be matched with any of the patterns in thepattern-list.
Zero ifstring matchespattern,FNM_NOMATCHif there is no match or another nonzero value if there is an error.
For an explanation of the terms used in this section, seeattributes(7). ┌───────────────────────────┬───────────────┬────────────────────┐ │Interface│Attribute│Value│ ├───────────────────────────┼───────────────┼────────────────────┤ │fnmatch() │ Thread safety │ MT-Safe env locale │ └───────────────────────────┴───────────────┴────────────────────┘
fnmatch() POSIX.1-2008.FNM_CASEFOLDFNM_IGNORECASE POSIX.1-2024.FNM_FILE_NAMEFNM_LEADING_DIR GNU.
fnmatch() POSIX.1-2001, POSIX.2.FNM_CASEFOLD has been available on many systems even before POSIX.1-2024.
sh(1),glob(3),scandir(3),wordexp(3),glob(7)
This page is part of theman-pages (Linux kernel and C library user-space interface documentation) project. Information about the project can be found at ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report for this manual page, see ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. This page was obtained from the tarball man-pages-6.15.tar.gz fetched from ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on 2025-08-11. If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up- to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgLinux man-pages 6.15 2025-05-17fnmatch(3)Pages that refer to this page:find(1), git-diff(1), git-diff-files(1), git-diff-index(1), git-diff-pairs(1), git-diff-tree(1), git-format-patch(1), git-log(1), git-show(1), systemctl(1), glob(3), scandir(3), wordexp(3), glob(7), ss(8)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |