二十、通配符和特殊字符

king's blog
linux的bash环境下,有很多的通配符和特殊字符,比如我先查看linux当前目录下所有以sh结尾的文件,可用ls -l *.sh来查看,本节主要内容如下:
一、通配符
二、特殊字符

一、通配符

  • * : 代表0到多个任意字符
  • ? : 代表有且只有一个任意字符
  • [] : 代表有且只有一个[]内的任意字符
  • [-]: 代表有且只有一个[]内的任意字符,只是-代表连续的意思,比如0-9,代表0,1,2…9,共10个数中的任意一个数字
  • [^]: 代表非,反向的意思,代表有且只有一个非[]内的任意字符

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
weblogic@ETS157:/opt/project/test> ll
total 64
-rwxr--r-- 1 weblogic wasgroup  25 Feb 13 14:48 a.sh
-rwxr--r-- 1 weblogic wasgroup  25 Nov 25 09:48 b.sh
-rwxr--r-- 1 weblogic wasgroup 244 Mar  9 13:40 case.sh
-rwxr--r-- 1 weblogic wasgroup  34 Dec  2 10:29 c.sh
-rw-r--r-- 1 weblogic wasgroup  20 Feb 13 14:04 d.txt
-rw-r--r-- 1 weblogic wasgroup   6 Feb 13 14:20 first.txt
-rwxr--r-- 1 weblogic wasgroup  45 Mar  9 13:59 for-1.sh
-rwxr--r-- 1 weblogic wasgroup  54 Mar  9 14:01 for-2.sh
-rwxr--r-- 1 weblogic wasgroup 280 Mar  9 17:18 function_2.sh
-rwxr--r-- 1 weblogic wasgroup 288 Mar  9 16:13 function.sh
-rwxr--r-- 1 weblogic wasgroup 122 Mar  9 11:27 if.sh
-rw-r--r-- 1 weblogic wasgroup   7 Feb 13 14:20 second.txt
-rwxr--r-- 1 weblogic wasgroup  46 Mar 10 14:19 shift.sh
-rw-r--r-- 1 weblogic wasgroup   6 Feb 13 14:22 third
-rwxr--r-- 1 weblogic wasgroup  74 Mar  9 13:57 until.sh
-rwxr--r-- 1 weblogic wasgroup  74 Mar  9 13:55 while.sh

#1.查看所有sh结尾的文件
weblogic@ETS157:/opt/project/test> ll *.sh
-rwxr--r-- 1 weblogic wasgroup  25 Feb 13 14:48 a.sh
-rwxr--r-- 1 weblogic wasgroup  25 Nov 25 09:48 b.sh
-rwxr--r-- 1 weblogic wasgroup 244 Mar  9 13:40 case.sh
-rwxr--r-- 1 weblogic wasgroup  34 Dec  2 10:29 c.sh
-rwxr--r-- 1 weblogic wasgroup  45 Mar  9 13:59 for-1.sh
-rwxr--r-- 1 weblogic wasgroup  54 Mar  9 14:01 for-2.sh
-rwxr--r-- 1 weblogic wasgroup 280 Mar  9 17:18 function_2.sh
-rwxr--r-- 1 weblogic wasgroup 288 Mar  9 16:13 function.sh
-rwxr--r-- 1 weblogic wasgroup 122 Mar  9 11:27 if.sh
-rwxr--r-- 1 weblogic wasgroup  46 Mar 10 14:19 shift.sh
-rwxr--r-- 1 weblogic wasgroup  74 Mar  9 13:57 until.sh
-rwxr--r-- 1 weblogic wasgroup  74 Mar  9 13:55 while.sh

#2.查看a.sh or b.sh
weblogic@ETS157:/opt/project/test> ll [a,b].sh
-rwxr--r-- 1 weblogic wasgroup 25 Feb 13 14:48 a.sh
-rwxr--r-- 1 weblogic wasgroup 25 Nov 25 09:48 b.sh

#3.查看a.sh , b.sh or c.sh
weblogic@ETS157:/opt/project/test> ll [a-c].sh
-rwxr--r-- 1 weblogic wasgroup 25 Feb 13 14:48 a.sh
-rwxr--r-- 1 weblogic wasgroup 25 Nov 25 09:48 b.sh
-rwxr--r-- 1 weblogic wasgroup 34 Dec  2 10:29 c.sh

#4.查看非a.sh,b.sh以外,所有单个字符名的sh文件
weblogic@ETS157:/opt/project/test> ll [^a-b].sh
-rwxr--r-- 1 weblogic wasgroup 34 Dec  2 10:29 c.sh

#5.查看所有字符名为5个字符的sh文件
weblogic@ETS157:/opt/project/test> ll ?????.sh
-rwxr--r-- 1 weblogic wasgroup 45 Mar  9 13:59 for-1.sh
-rwxr--r-- 1 weblogic wasgroup 54 Mar  9 14:01 for-2.sh
-rwxr--r-- 1 weblogic wasgroup 46 Mar 10 14:19 shift.sh
-rwxr--r-- 1 weblogic wasgroup 74 Mar  9 13:57 until.sh
-rwxr--r-- 1 weblogic wasgroup 74 Mar  9 13:55 while.sh

二、特殊字符

  • # : 注释符号
  • \ : 反义符号,将特殊字符或通配符,还原成一般字符
  • | : 管道符
  • ; : 命令连续执行分隔符,比如ll ; pwd ,表示连续执行ll和pwd两个命令
  • ~ : 用户的根目录
  • $ : 获取变量,比如$a,表示获取变量a的值
  • ! : 逻辑运算中的非运算
  • / : 路径分割符号,比如/opt/project
  • > : 数据重定向符号,覆盖输出
  • >>: 数据重定向符号,追加输出
  • < : 数据重定向符号,输入
  • <<: 数据重定向符号,输入
  • ”: 单引号
  • “”: 双引号
  • “: 命令执行符号,“中的命令为可先执行的命令,等同于$()
  • (): 表示在子shell中执行()内的命令
  • {}: 表示区块
Tags:
文 / 甲乙丙丁
LEAVE A REPLY

loading