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 ...
Get Linux in a Nutshell, 6th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.