Linux - Shell - 通配符
-
概述
- 通配符
-
背景
- 一直分不清 通配符 和 正则
- 通配符也是一种简单的 查找手段
- 在懒得用正则的时候, 是个好办法
-
准备
-
os
- centos7
-
目录
- /etc
-
命令
- ls -d
- -d
- 如果过滤出目录, ls 不会对目录拆包
- 如果不跟 正则, 只返回 .
- -d
- ls -d
-
1. 通配符
-
概述
- 通配符
- wildcard
- 狂野的卡牌?
-
通配符
-
描述
- 一种字符
- 可以在搜索中, 代替其他任意字符
- 一种字符
-
好处
- 提高了搜索的灵活性和效率
-
-
使用场景
- ls
- find
- 其他欢迎补充
2. * 通配符
-
概述
*
通配符
-
作用
- 匹配 任意类型 的 [0, 正无穷] 个字符
- 当然 linux 的路径长度, 是有上限的
- 匹配 任意类型 的 [0, 正无穷] 个字符
-
场景1: 匹配 特定后缀 的文件
# . 在通配符里, 是 普通字符, 不要和 正则 弄混了 # .conf > ls -d *.conf # .d > ls -d *.d
-
场景2: 匹配 特定前缀 的文件
# sys > ls -d sys*
3. ? 通配符
-
概述
- ? 通配符
-
作用
- 匹配 任意类型 的 单个字符
-
场景: 查找后缀长度固定的内容
# 后缀长度为 1 > ls -d *.?
4. [] 通配符
-
概述
- [] 通配符
-
作用
- 匹配 [] 内的 单个字符
-
场景
> ls -d [a-z]* > ls -d *[a-z]* > ls -d *[A-Z]* > ls -d *[0-9]* > ls -d *[a-Z]* > ls -d *[a-f]* > ls -d *[a-fxyz]* > ls -d *[a-zA-Z0-9]*
5. [!] 通配符
-
概述
- [!] 通配符
-
作用
- 反选 单个字符
-
场景
# 不是 小写字母开头 的文件 > ls -d [!a-z]
5. {}
-
概述
- {}
- 这个好像不算 通配符
- 但是很多通配符的地方, 也可以用
-
作用
- 在多个 str 中选择yige
-
场景
# 查找 sysco 或者 sysct 开头的 目录 或 文件 > ls -d sys{co,ct}*
6. 其他
- 其实还要这些东西, 但是我不确定它们是否属于 通配符, 也不确定怎么用
- [:alpha:]
- 其他
ps
-
ref
-
后续
- 可能就是把之前整理的 正则, 再 搬出来 了吧
尽量尝试解释清楚; 自己校对能力有限, 如果有错误欢迎指出