通配符与正则表达式的元字符代表的意义不一样。
通配符一般用于命令行bash环境,而linux正则表达式用于grep,sed,awk场景。
通配符 | 意义 |
---|---|
* | 代表0个到无穷多个任意字符 |
? | 代表一定有一个任意字符 |
; | 连续命令执行分隔符 |
# | 配置文件注释 |
| | 管道,分隔两个管道命令的界定 |
~ | 用户家目录 |
- | 上一次的目录 |
$ | 变量前需要加的符号 |
/ | 路径分隔符号 |
> | 输出重定向,覆盖 |
>> | 追加输出重定向,追加 |
< | 输入重定向 |
<< | 追加输入重定向 |
‘ | 单引号,不具有变量置换功能,输出所见即所得 |
“ | 双引号,具有变量置换功能,解析变量后输出 |
` | 反引号,两个“`”中间为可以先执行的命令 ,等价于$() |
{} | 中间为命令区块组合或内容序列 |
! | 逻辑运算中的非 |
&& | 当前一个指令执行成功时,执行后一个指令 |
|| | 当前一个指令执行失败时,执行后一个指令 |
.. | 上级目录 |
. | 当前目录 |
实例
*的使用:
[root@ianLinux ~]# ls *.log
1.log 2.log 3.log install.log
?的使用:
[root@ianLinux ~]# ls ?.log
1.log 2.log 3.log
[root@ianLinux ~]# ls ???????.log
install.log
{}的使用:
[root@ianLinux ~]# echo {1..3}
1 2 3
反引号,单引号,双引号
[root@ianLinux ~]# echo `date`
2016年 09月 05日 星期一 20:33:29 CST
[root@ianLinux ~]# echo 'date'
date
[root@ianLinux ~]# echo "date"
date
[root@ianLinux ~]# echo "`date`"
2016年 09月 05日 星期一 20:34:35 CST
&&,||
[root@ianLinux ~]# ech && echo 1
-bash: ech: command not found
[root@ianLinux ~]# ech || echo 1
-bash: ech: command not found
1
[root@ianLinux ~]# echo 2&&echo 1
2
1
[root@ianLinux ~]# echo 2||echo 1
2