Linux中的通配符(wildcards)可以用于在命令行中方便地匹配文件名
*
:匹配任意长度的任意字符。例如,*.txt
表示所有以 .txt
结尾的文件。
?
:匹配任意单个字符。例如,ab?d
表示以 a
开头,b
后面跟一个任意字符,然后是 d
的文件。
[abc]
:匹配方括号内的任意一个字符。例如,[aeiou]
表示以 a
、e
、i
、o
或 u
开头的文件。
[!abc]
:匹配不在方括号内的任意一个字符。例如,[!aeiou]
表示以 b
、c
、d
、e
或 f
开头的文件。
{m,n}
:匹配大括号内的任意一个字符串。例如,{a,b,c}
表示 a
、b
或 c
。
{m,n,p}
:匹配大括号内的任意多个字符串。例如,{a,b,c}{1,2}
表示 aa
、ab
、ac
、ba
、bb
或 bc
。
* *
:匹配任意数量的任意字符。例如,a* *
表示以 a
开头,后面跟任意数量的任意字符,再后面跟任意数量的任意字符的文件。
? *
:匹配一个任意字符,后面跟任意数量的任意字符。例如,? *
表示以任意字符开头,后面跟任意数量的任意字符的文件。
* ?
:匹配任意数量的任意字符,后面跟一个任意字符。例如,* ?
表示以任意数量的任意字符开头,后面跟一个任意字符的文件。
以下是一些使用通配符的示例:
.txt
文件:ls *.txt
a
或 b
开头的文件:ls [ab]*
a
、e
、i
或 o
开头的文件:ls [aeiou]*
ls [0-9]*
file
开头,后面跟一个或多个数字的文件:ls file[0-9]*
file
开头,后面跟一个或多个数字和一个扩展名为 .txt
的文件:ls file[0-9]*.txt
通过组合这些通配符,你可以更灵活地匹配文件名。