Bash file name metacharacter meaning 1. * match 0 or multiple arbitrary characters 2 .? Match 1 arbitrary character 3. [abc...] match a character in a bracket. If a connection line (-) is used, it indicates a character in the matching range. (For example, a-z, A-Z, 0-9) 4 .[! Abc...] matches the characters not in the brackets .~ The current user's Home directory (Home) 6 .~ Name: the user's Home directory (Home) 7 .~ + Current working directory ($ PWD) 8 .~ -The last working directory ($ OLDPWD) has the extglob option :? (Pattern) matches 0 or 1 pattern * (pattern) matches 0 or more pattern + (pattern) matches 1 or more pattern @ (pattern) exactly match a pattern! (Pattern) match all strings that are not in the pattern. The pattern can be composed of multiple pattern separated by |. Matching any sub-pattern matches the entire pattern. With the globstar option: ** match all files and subdirectories. If a/is followed, only the subdirectories match.