linux bash命令行常用通配符和特殊符号
通配符与特殊符号
回到顶部在bash下可以使用通配符(wildcard)匹配各种字符。常用的通配符如下:
bash常用通配符 | |
---|---|
通配符 | 通配符意义 |
* | 代表0个或任意多个的任意字符 |
? | 代表一个任意字符 |
[ ] | 代表中括号[ ]内出现的任意一个字符。例如[abcd]表示一定有一个字符, 可能是a, b, c, d这四个中的任何一个 |
[ - ] | 括号内[]为减号-,减号两边有字符,表示在字符编码顺序内的任一字符。例如[0-9]代表0到9之间的任一数字,[a-z]代表a到z之间的任一字符 |
[^ ] | 中括号内[ ]的第一个字符为指数符号^, 表示不是中括号内字符的任一字符。例如[^abc]代表一个字符,但是这个字符不可能是a、b或者c。 |
列出/etc/目录下以cron开头的文件名:
#由于与编码有关,先设定语系一下 [peter@study ~]$ LANG=C [peter@study ~]$ ls -ld /etc/cron* drwxr-xr-x 2 root root 4096 Jul 16 2019 /etc/cron.d drwxr-xr-x 2 root root 4096 Sep 25 12:18 /etc/cron.daily drwxr-xr-x 2 root root 4096 Dec 17 2018 /etc/cron.hourly drwxr-xr-x 2 root root 4096 Dec 17 2018 /etc/cron.monthly -rw-r--r-- 2 root root 722 Nov 16 2017 /etc/crontab drwxr-xr-x 2 root root 4096 Dec 17 2018 /etc/cron.weekly-d选项如果是目录仅列出目录本身的信息,不需要列出目录内的文件信息。
列出/etc/目录下文件名刚好是五个字母的文件名:
[peter@study ~]$ ls -ld /etc/?????? drwxr-xr-x 4 root root 4096 Jul 10 2019 /etc/apport drwxr-xr-x 7 root root 4096 Dec 17 2018 /etc/brltty drwxr-xr-x 2 root root 4096 Jul 16 2019 /etc/cron.d ...省略...每一个?代表一个任意字符,五个字符就是五个?了。
列出/etc/目录下文件名含有数字的文件名:
[peter@study ~]$ ls -ld /etc/*[0-9]* drwxr-xr-x 4 root root 4096 Dec 17 2018 /etc/dbus-1 drwxr-xr-x 3 root root 4096 Jul 16 2019 /etc/gnome-vfs-2.0 drwxr-xr-x 2 root root 4096 Dec 17 2018 /etc/gtk-2.0 ...省略...列出/etc/目录下, 文件名开头不是a-t的所有文件名:
[peter@study ~]$ ls -ld /etc/[^a-t]*将上面找到的文件复制到/tmp/upper目录中
[peter@study ~]$ mkdir /tmp/upper [peter@study ~]$ cp -a /etc/[^a-z]* /tmp/upper除了使用通配符, bash环境下还有很多的特殊字符,这些特殊字符具有特定的功能含义。 理论上,文件名尽量不要使用这些特殊字符!常用的特殊字符汇总如下:
bash常用特殊字符 | |
---|---|
特殊字符 | 特殊字符意义 |
# | 注释符号,#后面的任何字符都被bash作为注释说明,没有实际的执行意义,最常用在shell script中 |
\ | 转义字符,将特殊字符或通配符还原成一般字符 |
| | 管道线(pipe),连接两个管道命令。管道线前面命令的输出作为管道线后面命令的输入 |
; | 连续命令分隔符,连接两个按先后顺序连续执行的命令。分割符前后的两个命令可以没有任何关系。但是一定是按照顺序执行。 |
$ | 变量前导符,取变量的值 |
& | 作业控制命令(job control),将命令变成bash后台作业 |
! | 逻辑运算意义上的非 not 的意思! |
/ | 路径分隔符,相对路径或绝对路径父子目录或文件的分割符 |
>, >> | 数据流输出重定向符号,>为覆盖输出,>>为追加输出 |
<, << | 数据流输入重定向符号,分别为覆盖输入和追加输入 |
' ' | 单引号,单引号内的字符均为普通字符,即使是特殊字符也失去了特殊功能,例如$失去取变量的功能含义,变为普通字符 |
" " | 双引号,双引号内的特殊字符具有特殊功能,例如$仍然保留取变量值的功能。 |
` ` | 反单引号`内为可优先执行的命令,意义类似$( ) |
( ) | 在()中间为子shell 的起始与结束 |
{ } | 在{}中间为命令区块的组合! |
initroot编辑整理,转载请注明www.initroot.com
100次点赞
100次阅读