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中的其他特殊符号
符号 |
意义 |
# |
注释 |
\ |
转义符号 |
| |
管线(常用),分隔两个管线命令的界定 |
; |
连续指令的分隔符(与管线命令不同!) |
& |
工作控制,将命令转换成后台运行 |
! |
非 |
‘’ |
不具备变量转换功能,会将变量转换成纯文本 |
“” |
可以变量转换 |
`` |
``中间的命令可以优先执行,也可以「$()」代替 |
{} |
代码块 |