(一)Linux通配符
1.Linux通配符是Linux操作系统中常用的高级字符,一般用于文件操作时,进行字符及文件批量匹配。
2.Linux系统中使用的通配符有通配字符“*”、问号“?”、方括号“[]”及其他一些符号,以下是他们的详细说明:
(1)星号“*”:表示匹配0个或多个任意字符。例如:“*abc”可以匹配字符串“qwertyabc”、“1234asdfgabc”等,但不能匹配“1234abcdefg”。
(2)问号“?”:表示匹配一个字符,其余和星号“*”类似。
(3)方括号“[]”:表示给出字符范围,其中方括号内可以包含某几个字符或某个字符范围,使用“-”(减号)表示一个字符范围。例如:“[a-z]”表示任意一个小写字母,“[A-Z0-9]”表示全大写字母加数字集合;“[0-9]”可以表示任意一位数字。
(4)叹号“!”:表示取反操作,其含义和“~”(波浪号)号类似,即以“!”号后面的部分内容为标准,匹配除此之外的内容。例如:“abc![0-9]”可以表示字符串“abc”后面跟着任意一位数字字符以外的字符,如“abc$”、“abc/”等。
(5)波浪号“~”:表示将参数替换成对应的文件名(或目录),常用于终端编程,可以方便的替换一些不变的命令段,常用于复制命令,“~”号后可以跟上任意文件或目录的路径。
(6)环绕标志“{}”:表示可以匹配括号中的多个字符,并以其中的一个进行匹配,而不是像“[]”一样以括号中的所有字符来进行匹配。例如:“*{.jpg,.gif,.png}”可以匹配任意以“.jpg”、“.gif”或“.png”结尾的文件名。
(二)Linux通配符的应用
1.Linux通配符在文件管理方面最常见的就是结合shell命令cp,mv,rm等来进行文件(夹)的复制、移动、删除等操作。例如,下面的命令可以用来将``/tmp/``目录下以“.conf”结尾的文件复制到 ``/opt/conf`` 目录中:
```cp /tmp/.*.conf /opt/conf```
2.Linux通配符也可以用来进行文本编辑,例如,用vi编辑器进行文本操作,可以用“:s”命令进行文本查找及替换,此时可以使用Linux通配符进行字符及文件匹配替换,例如:
```:s/src\\.\\*/dst\\.\\*/g```
该命令会将当前文件中src开头的字符全部替换成dst开头的字符。
3.Linux通配符还可以用来查找文件,例如:可以用“find”命令查找指定目录及其子目录下所有以“.c”、“.php”或“.html”作为扩展名的文件,然后将文件名列表打印到终端上:
```find /path -name '*.{c,php,html}'```
一、linux通配符
1、Linux通配符是Linux系统下使用的高级文件操作命令的的简化。它可以使用简单的字符串替代复杂的命令行,大大减少了操作的复杂性,比如在Linux系统中查找文件,列出目录下文件,等都可以使用通配符来简化任务。
2、Linux通配符主要有三种,即*、?和[ ],含义分别为:
(1)*:匹配任意字符,可以用来匹配文件名中的任意字符,比如“*”可以匹配不同长度的任意字符;“*.txt”可以匹配任何后缀为txt的文件;“README*”可以匹配任何以README开头的文件;“abc*def”可以匹配任何以abc开头后缀def的文件。
(2)?:只匹配一个字符,比如“?.txt”可以匹配任何后缀为txt的单个字符文件,类似“abc?def”,但这种匹配仅限于一个字符。
(3)[]:没使用方括号,可以指定要匹配的特定字符,比如“[A-Z]”可以匹配任何大写字母,“[a-z]”可以匹配任何小写字母;而“[aeiou]”可以匹配任何元音字母。
3、linux通配符在命令行中的使用:
Linux通配符在命令行中的使用可以大大提高文件操作的效率,比如,在Linux系统中查找所有以“README”开头的文件,可以使用:
$ ls README*
这样就可以查出所有以README开头的文件了。
4、另外, Linux系统还支持额外的通配字符,比如“~”可以表示当前用户的家目录,比如“~/tmp”可以表示当前用户的当前目录下的tmp文件夹;“{}”和“;”可以用来同时执行多个 linux 命令,比如:
$ ls tmp; cd ~/tmp; grep -r '*.txt'
这条命令将在当前目录下列出tmp目录,然后进入当前用户的tmp目录,并在其中搜索后缀为txt的文件。
综上所述,Linux的通配符可以用来简化Linux系统文件操纵的操作,并有多种选择可以供使用者选择,来实现更加精细化、复杂化的文件操纵任务。