开发者社区> 晨曦蜗牛> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Linux通配符的使用详解

简介: 一、简介 一般生产环境的服务器默认都是不安装图形化界面的,习惯了在命令行环境下工作是,大家会发现:命令行操作效率比图形化界面效率高很多。
+关注继续查看
一、简介

一般生产环境的服务器默认都是不安装图形化界面的,习惯了在命令行环境下工作是,大家会发现:命令行操作效率比图形化界面效率高很多。由命令行环境中,我们不能直观地看到一些文件或目录的名称及其他一些信息,这时候通配符就派上用场啦!当不知道真正字符或懒得输入完整文件或目录名称时,使用通配符代替一个或多个真正的字符就十分方便啦!让我们来看一下吧!

符号 意义
* 代表0 个到无穷多个任意字符
? 代表一定有一任意字符
[] 同样代表一定有一个在括号内的字符(非任意字符)。例如 abcd 代表一定有一个字符,可能是 a, b, c, d 这四个任何一个
[-]​ 若有减号在中括号内时,代表在编码顺序内的所有字符。例如 0-9 代表0到9 之间的所有数字,因为数字是连续的!
^ 若中括号内的第一个字符为指数符号(^),那表示取反,例如^abc表示除了a,b,c之外一定有一个字符
{str1,str2,…} 匹配sr1或str2(或更多)其一字符串
二、使用示例
  1. 星号(*)
[wildcard@GeekDevOps ~]$ ll
总用量 0
-rw-r--r-- 1 root root 0 2月   4 20:55 abc.txt
-rw-r--r-- 1 root root 0 2月   4 20:55 ab.txt
-rw-r--r-- 1 root root 0 2月   4 20:55 acd.txt
[wildcard@GeekDevOps ~]$ sudo chown wildcard:wildcard *
[wildcard@GeekDevOps ~]$ ll
总用量 0
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 abc.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 ab.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 acd.txt

通过通配符*,我们把当前目录下的所有文件的所有者全部改成了wildcard。
2. 问号(?)

[wildcard@GeekDevOps ~]$ ll a????
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 a.txt
[wildcard@GeekDevOps ~]$ ll ?????
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 a.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 b.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 c.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 d.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 e.txt

一个问号代表一个字符。在以上例子中,第一次列出了以a开头文件名一共5个字符的文件。第二次则列出了文件名一共5个字符的所有文件。
3. 中括号([])

[wildcard@GeekDevOps ~]$ ll [a]*.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 abc.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 ab.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 acd.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 ac.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 a.txt
[wildcard@GeekDevOps ~]$ ll [a][b].txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 ab.txt

在以上例子中,第一次列出了以a开头的所有文件,这里搭配了*使用。第二次列出了以ab开头的文件。
4. 中括号中有减号([-])

[wildcard@GeekDevOps ~]$ ll [a-z].txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 a.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 b.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 c.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 d.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 e.txt

事实上,这是以上第三条的拓展,指定了中括号内的字符取值范围。
5. 取反(^)

[wildcard@GeekDevOps ~]$ ll [^a]*
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 b.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 c.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 d.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 e.txt

以上例子中列出了文件名第一个字符不以a开头的所有文件。
6. 花括号({})

[wildcard@GeekDevOps ~]$ ll {"ab","e"}*
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 abc.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 ab.txt
-rw-r--r-- 1 wildcard wildcard 0 2月   4 20:55 e.txt

以上例子中,列举了以字符串“ab”或“e”开头的文件。
很多命令都可以使用通配符,比较常见的有ls,dir,vdir,cp,mv,scp,rm,rmdir等。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
修改Linux服务器时间的命令
修改Linux服务器时间的命令
0 0
如何从虚拟机上的linux使用sz命令传输windows大于4G的文件
如何从虚拟机上的linux使用sz命令传输windows大于4G的文件
0 0
linux基本功系列之uptime命令实战
linux基本功系列之uptime命令实战
0 0
linux基本功系列之sudo命令实战一
linux基本功系列之sudo命令实战一
0 0
linux基本功系列之-rpm命令实战
linux基本功系列之-rpm命令实战
0 0
linux基本功系列之su命令
linux基本功系列之su命令
0 0
linux基本功系列之wc命令实战
linux基本功系列之wc命令实战
0 0
linux基本功系列之-lsattr命令实战
linux基本功系列之-lsattr命令实战
0 0
linux基本功系列之chattr命令
linux基本功系列之chattr命令
0 0
+关注
晨曦蜗牛
专注DevOps!
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Debian GNU/Linux 安全合规之路
立即下载
Decian GNU/Linux安全合规之路
立即下载
Linux系统通过fail2ban对暴力破解进行防护
立即下载