通配符于特殊符号
通配符
方便查找类似,但不相同的文件名
是专门处理文件内的特殊字符,而不是文件内容
是shell的内置语法,大部分的linux命令都能识别
unix的通配符表也能在linux中使用
unix风格的通配符表
| 符号 | 作用 |
|---|---|
| [[:upper:]] | 所有大写字母 |
| [[:lower:]] | 所有小写字母 |
| [[:alpha:]] | 所有字母 |
| [[:digit:]] | 所有数字 |
| [[:alnum:]] | 所有的字母和数字 |
| [[:space:]] | 所有的空白字符 |
| [[:punct:]] | 所有标点符号 |
linux风格的通配符表
| * | 匹配任意字符 | ||||
|---|---|---|---|---|---|
| ? | 在特定文件中匹配单个字符 | ||||
| [] | 匹配括号中的字符 | [a-z]范围区间内不区分大小,表示匹配26个英文字母中任意一个字母 [abc]表示匹配小写abc字母中任意一个字符; [ABC]表示匹配大写ABC字母中的任意字母 |
|||
| ! | 在方括号中排除字符 | ||||
| - | 匹配一个范围内的字符 | ||||
| # | 匹配任意单个字符 | ||||
| ^ | 与感叹号相同,排除括号中的字符 | ||||
*匹配任意字符
[root@localhost ~]# ls p*.txt 找出以任意以p开头,txt结尾的文件
puy.txt
[root@localhost ~]# ls a* 找出任意以a开头的的文件
anaconda-ks.cfg
[root@localhost ~]# find / -name "*.log" 找出所有任意字符开头,log结尾的文件
/root/Python-3.9.11/config.log
/var/lib/docker/overlay2/55424ad93506d4d2ed5f6cafe624ef40572095898a8e57e9f116d68cdeedeeec/diff/var/log/apt/history.log
/var/lib/docker/overlay2/55424ad93506d4d2ed5f6cafe624ef40572095898a8e57e9f116d68cdeedeeec/diff/var/log/apt/term.log
/var/lib/docker/overlay2/55424ad93506d4d2ed5f6cafe624ef40572095898a8e57e9f116d68cdeedeeec/diff/var/log/dpkg.log
/var/lib/docker/overlay2/55424ad93506d4d2ed5f6cafe624ef40572095898a8e57e9f116d68cdeedeeec/diff/var/log/nginx/access.log
/var/lib/docker/overlay2/55424ad93506d4d2ed5f6cafe624ef40572095898a8e57e9f116d68cdeedeeec/diff/var/log/nginx/error.log
/var/log/vmware-network.6.log
/var/log/tuned/tuned.log
/var/log/audit/audit.log
/var/log/rhsm/rhsmcertd.log
/var/log/rhsm/rhsm.log
/var/log/boot.log
/var/log/vmware-vmsvc.log

[] 匹配方括号里的内容
[root@localhost opt]# ls [1-6].txt
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt
[root@localhost opt]#
[root@localhost opt]# ls
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt a.txt b.txt chen game_v2.tar g.txt u.txt
[root@localhost opt]# tou
[root@localhost opt]#
[root@localhost opt]# ls [a-z,0-9].txt
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt a.txt b.txt g.txt u.txt
[root@localhost opt]#
[!abcd] 取反方括号的内容
[root@localhost opt]# ls
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt a.txt b.txt chen game_v2.tar g.txt u.txt
[root@localhost opt]# ls [!0-9].txt
a.txt b.txt g.txt u.txt
[root@localhost opt]#
^ 取反,与感叹号作用相同
[root@localhost opt]# ls
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt a.txt b.txt chen game_v2.tar g.txt u.txt
[root@localhost opt]# ls [^0-9].txt
a.txt b.txt g.txt u.txt
[root@localhost opt]#
特殊符号
引号
'' 单引号,强引用,单引号中的内容会被当作普通字符
[root@localhost opt]# echo 'date' 打印当前系统时间,单引号强引用,不识别引号中命令,原样输出
date
"" 双引号,能够将引号内具有特殊意义的字符发挥其功能
`` 反引号,可以解析命令
[root@localhost opt]# echo `date`
Sat Apr 9 15:49:09 CST 2022
[root@localhost opt]#
[root@localhost nginx]# echo `date '+%F'` 打印当前时间,格式化时间以年月日显示
2022-04-11
分号 ;表示命令的结束,多个命令之间的间隔符

管道符 | 左边命令的执行结果交给右边进行二次处理

&&符 符号左边的命令执行成功,符号右边的命令才能执行

|| 只有前面命令执行失败,才执行后面命令;前面命令执行成功,后面不执行

$() 符 引用,引用括号里命令的结果
[root@localhost opt]# ls
1.txt 2.txt 3.txt 4.txt 5.txt 6.txt a.txt b.txt chen game_v2.tar g.txt u.txt
[root@localhost opt]# ls [^0-9].txt
a.txt b.txt g.txt u.txt
[root@localhost opt]# rm -f $(find . -name '*.txt') #找到当前目录所有的txt文件,然后删除
[root@localhost opt]# ls
chen game_v2.tar
[root@localhost opt]#

浙公网安备 33010602011771号