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
通过组合这些通配符,你可以更灵活地匹配文件名。