通配符的使用方法(初学)

通配符的使用方法(部分)

在实验楼的Linux 基础入门(新版)实验2:基本概念及操作中,有介绍集中通配符如下:

但是部分不是很好理解,以下是我通过查资料、实验整理的部分用法

  • “?”和“*”

通配符 用法
匹配任意一个字符
  • | 匹配0或多个字符

?和*的用法较为简单,举例说明

  1. 在终端中输入
cd Desktop
touch test{1..5}.txt
touch test{1..5}.log
ls

在桌面建立如下10个文件

  1. 输入
find t*
find t*.log
find test?.txt

分别为查询以t开头的文件、以t开头的log文件、以test开头最后一个字符不明的txt文件,结果如下:

  • “[ ]”表示一个范围

代表“[”和“]”之间的某一个字符,比如[0-9]可以代表0-9之间的任意一个数字,[a-zA-Z]可以代表a-z和A-Z之间的任意一个字母,字母区分大小写。比如

find test[1-3].txt

查找以test开头,第五个字符是1-3中任意一个的txt文件

ls t[a-f]st?.log
ls t[f-z]st?.log

前者可以找到5个文件,而后找不到

t[a-f]st?.log
t[abcdef]st?.log

另外,以上这两行的代码的意思是相同的。

  • “!”或“^”表示非

例如,[!abcd] 或[^abcd]表示非,表示不匹配括号里面的任何一个字符,例如

注意事项

  1. 经测验,在实验楼中,“!”无效,“^”可使用
  2. “!”和“^”只能在[ ]中使用
  3. 凡是使用[ ]的,文件名必须包含扩展名,若要检索全部类型的文件,可用 * 表示扩展名;而仅使用“?”、“*”的可不写扩展名
  • "{..}"表示生产一个序列

touch test{1-5}.txt
touch test{1,2,3,4,5}.txt
//以逗号分隔,且不能有空格

以上两行代码意思相同。具体例子开头创建文件时已有,不再赘述

[]与{}区别:
[ ]只能用来找文件;
{ }可以用来找文件,或创造文件,生成序列
——陈思齐-Linux通配符的使用

参考:

Linux 通配符 - pursuer.chen - 博客园
陈思齐-Linux通配符的使用

posted @ 2018-02-07 20:48  zicerain  阅读(1123)  评论(1编辑  收藏  举报