通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索文件。当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。
常用通配符
1、*
通常用于匹配任何字符,包括数字、字母和符号。你可以使用星号指定应用程序需要查找的字符相应位置的任何字符。
bash
ls *.txt (列出所有以.txt结尾的文件)
用 * 查找 /var/log 下的所有以.log结尾的文件: ls /var/log/*.log
2、?
匹配文件名中单个字符。在文件名中,问号占用了字符位置,能够匹配任何字符。
bash
ls ?.txt (列出所有以一个字符加上.txt结尾的文件)
用 ? 查找 /var/log/ 目录下所有log文件名(文件名字母数目不同只能按照 ? 来匹配):
ls /var/log/*.log?
3、[ ]
用于匹配指定字符集范围中的一个字符。如果需要匹配一小段字符集范围,可以使用该通配符。
bash
ls [abc].txt (列出以a,b或c 为首字母加上 .txt 结尾的文件)
用 [] 在 ls 命令中匹配任何以 n、o 或 p 开头的文件夹: ls [nop]*
4、{ }
提供一种在Linux中生成文件名的方法。若文件名中有几个不同的选项,就可以使用此通配符。它会自动将多个选项组合成唯一的字符串。
bash
cp file{1,2}.txt dir (将file1.txt 和file2.txt 放入dir目录中)
用 {} 显示指定两个文件: echo {foo,bar}
bash
[] 与 {} 区别:
[] 只能用来找文件
{} 用来找文件,或创造文件,生成序列
了解即可:
* 代表任意字符,0~多个
? 代表一个字符
注释
\ 转义字符,将特殊字符或通配符还原成一般符号
| 管道符号,传递的时普通的文本/字符串,来自于前一个命令
; 连续性命令的界定;分隔多个命令,没有逻辑关系,只是一步一步执行
~ 用户的根目录
$ 变量前需加的变量值;引用变量 去变量的值或普通用户的命令提示符
! 逻辑运算中的"非"
/ 路径分割符号
> 输出重定向,会清空原文内容,然后在向文件里面追加内容
>> 追加输出重定向,追加到文件的最后一行
' 不具有变量置换功能,所见即所得
" 具有变量置换功能,解析特殊符号,特殊符号有了原本的特殊意思
` 两个`中间为可先执行的指令
() 中间为子shell的起始与结束
[] 中间为字符组合
{} 中间为命令区块组合
&& 当前符号前一个指令执行成功时,执行后一个指令
|| 当该符号前一个指令执行失败时,执行后一个指令