linux通配符知识

注意:linux通配符和三剑客(grep,awk,sed)正则表达式是不一样的,因此,代表的意义也是有较大区别的。

通配符一般用户命令行bash环境,而linux正则表达式用于grep,sed,awk场景。

*:通配符,代表所有(0到多个)字符

?:通配符,代表任意1个字符

;:连续不同命令的分隔符

#:配置文件注释

|:管道

~:当前用户的家目录

-:上一次所在的路径

$:变量前需要加的符号

/:路径分隔符号,也是根的意思

>或1>:重定向,覆盖原有数据

>>:追加重定向,追加内容文件尾部

<:输入重定向(xargs,tr)

<<:追加输入重定向(cat)

':单引号,不具有变量置换功能,输出时所见即所得

'':双引号,具有变量置换功能,解析变量后输出,不加引号相当于双引号

`:tab键上面的键,反引号,两个``中间为命令,会先执行,等价$()

{ }:中间为命令区块组合或内容序列

!:逻辑运算中的“非”(not)

&&:and  并且,当前一个指令执行成功时,执行后一个指令

||:or  或者,当前一个指令执行失败时,执行后一个指令

..:两个点代表上一级目录

.:点代表当前目录

1.*号举例

[root@redhat  test]#  ls  *.sh  <==代表任意字符(0到多个)

xx.sh     xxx.sh     xxxx.sh

2.?号举例

[root@redhat  test]#  ls  *

xx.sh     xxx.sh     xxxx.sh     xxxxx.sh

[root@redhat  test]#  ls  ?.sh

ls:  无法访问?.sh:没有那个文件或目录

[root@redhat  test]#  ls  ????.sh  <==代表四个字符

xxxxx.sh

[root@redhat  test]#  touch  a.sh

[root@redhat  test]#  ls  ?.sh  <==代表一个字符

a.sh

[root@redhat  test]#  ls  -l  ????.sh

3.;两个命令之间的分隔符

[root@redhat  test]#  pwd;pwd

/root/test

/root/test

原文地址:https://www.cnblogs.com/axzq/p/9573770.html