Filename Metacharacters
Characters | Meaning |
|---|---|
* | Match any string of zero or more characters. |
? | Match any single character. |
[
| Match any one of the enclosed characters; a hyphen can specify a range (e.g., a–z, A–Z, 0–9). |
[!
| Match any character
|
~ | Home directory of the current user. |
~
| Home directory of user
|
~+ | Current working directory ($PWD). |
~- | Previous working directory ($OLDPWD). |
With the extglob option on:
Characters | Meaning |
|---|---|
?(
| Match zero or one
instance of |
*(
| Match zero or more
instances of
|
+(
| Match one or more
instances of
|
@(
| Match exactly one
instance of |
!(
| Match any strings that
don’t match |
This pattern can be a sequence of patterns separated by |, meaning that the match applies to any of the patterns. This extended syntax resembles that available in egrep and awk.
Bash supports the POSIX [[= c =]] notation for matching characters that have the same weight, and [[. c .]] for specifying collating sequences. In addition, character classes, of the form [[: class :]], allow you to match the following classes of characters.
Class | Characters matched | Class | Characters matched |
|---|---|---|---|
alnum | Alphanumeric characters | graph | Nonspace characters |
alpha | Alphabetic characters | Printable characters | |
blank | Space or tab | punct | Punctuation characters |
cntrl | Control characters | space | Whitespace characters |
digit | Decimal digits | upper | Uppercase characters |
lower | Lowercase characters | xdigit | Hexadecimal digits |
Bash also accepts ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access