通配符和特殊符号
2020-05-03 本文已影响0人
大熊的Yowai
bash中的通配符
在bash中有一个非常有用的功能,那就是通配符。常用的通配符如下:
| 符号 | 意义 |
|---|---|
| * | 0到无穷多个 |
| ? | 一定有一个 |
| [] | 一定意义一个在括号内。比如[abcd]代表一定有一个字符是a或b或c或d |
| [-] | 在编码顺序内的所有字符。比如[0-9]代表0到9之间的所有数字 |
| [^] | 反向选择,比如[^abc]表示只要有一个字符是非abc,就接受 |
案例
# 查找出/etc/底下以「s」开头的目录
ll -d /etc/s*
# 查找出/etc/底下文件名刚好是5个字母的文件名
ll -d /etc/?????
# 查找出/etc/底下含有数字的文件名。注意:前后要加「*」。如果不加「*」,则表示只有数字的文件名
ll -d /etc/*[0-9]*
# 查找/etc/底下,以非小写字母开头的文件名
ll -d /etc/[^a-z]*
# 将返利1的结果存到 /Users/kuma/upper中
mkdir /Users/kuma/upper;sudo cp -a /etc/s* /Users/kuma/upper
bash中的其他特殊符号
| 符号 | 意义 |
|---|---|
| # | 注释 |
| \ | 转义符号 |
| | | 管线(常用),分隔两个管线命令的界定 |
| ; | 连续指令的分隔符(与管线命令不同!) |
| & | 工作控制,将命令转换成后台运行 |
| ! | 非 |
| ‘’ | 不具备变量转换功能,会将变量转换成纯文本 |
| “” | 可以变量转换 |
| `` | ``中间的命令可以优先执行,也可以「$()」代替 |
| {} | 代码块 |