学习bash——通配符与特殊符号
一、通配符
这是bash操作环境中一个非常有用的功能,这让我们使用bash处理数据就更方便了。
常用通配符如下:
| 符号 | 意义 |
| * | 代表0个到无穷多个任意字符 |
| ? | 代表一个任意字符 |
| [] | 代表一定有一个在中括号内的字符(非任意字符) |
| [-] | 若有减号在中括号内,代表在编码顺序内的所有字符 |
| [^] | 若中括号内的第一个字符为^,则表示原向选择 |
【示例区】
预处理:LANG=C; alias ll=ls -al
题目1:找出/etc/下面以cron为开头的文件名
命令:ll -d /etc/cron* //加上-d仅仅是为了显示目录而已
题目2:找出/etc/下面文件名刚好是五个字母的文件名
命令:ll -d ?????
题目3:找出/etc/下面文件名含有数字的文件名
命令:ll -d /etc/*[0-9]*
题目4:找出/etc/下面文件名开头不是小写字母的文件名
命令:ll -d /etc/[^a-z]*
题目5:将题目4找到的文件复制到/tmp中
命令:cp -a /etc/[^a-z]* /tmp
二、特殊符号
| 符号 | 内容 |
| # | 批注符号,常用于script中,视为说明。 |
| \ | 转义符号,将“特殊字符或通配符”还原成一般字符 |
| | | 管道(pipe),分隔两个管道命令的界定 |
| ; | 连续命令执行分隔符 |
| ~ | 用户的主文件夹 |
| $ | 使用变量前导符,即是变量之前需要加的变量替代值 |
| & | 作业控制,将命令变成背景下工作 |
| ! | 逻辑运算意义上的“非”的意思 |
| / | 目录符号,路径分隔的符号 |
| >,>> | 数据流重定向,输出导向,分别是“替换”与“累加” |
| <,<< | 数据流重定向,输入导向 |
| ' ' | 单引号,不具有变量置换的功能 |
| " " | 具有变量置换的功能 |
| ` ` | 两个`中间为可以先执行的命令,也可使用$() |
| () | 在中间为子shell的起始与结束 |
| {} | 在中间为命令块的组合 |
我们的文件名应尽量避免使用到上述的字符。

浙公网安备 33010602011771号