Chinaunix首页 | 论坛 | 博客
  • 博客访问: 207638
  • 博文数量: 65
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 91
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-10 09:41
文章分类
文章存档

2020年(1)

2018年(1)

2017年(30)

2016年(30)

2015年(3)

我的朋友

分类: LINUX

2016-09-27 20:30:05

原文地址:unix 通配符 作者:eeevictor

通配符 

1、基本的通配符有哪些? 

·“?”可替代单个字符。 

·“*”可替代任意字符。 

·方括号“[charset]”可替代charset集中的任何单个字符。 

对最后一条做些解释。[cChH]通配符便可替代c或h字符的大小写形式。 
通配符集还能描述介于字符对之间的所有字符。如“[a-z]”就可以代 
替任意小写字母,而[a-zA-Z]则可替代任意字母。注意可替代的字符 
包括字符包括字符对之间的所有字符。 

与DOS相比,UNIX的通配符机制要比DOS好得多。在DOS中,任何在“*” 
之后,在“.”之彰的字符均被忽略,所以下面的指令将不能得到你想 
象的结果。 

del *bak.* 

在DOS中,用户只能用此命令删除当前目前下的所有文件,除非系统要 
求你不这样做。而在UNIX系统中,“*”可替代包括0在内的任意数字的 
字符,但一行中的其余特征也仍需匹配,因此“bak.*”可匹配 
newbak.save、oldbak.new甚至bak.temp,但不能和newbak匹配,因为后 
者不含“.”。这非常巧妙,可大大方便用户,而“*bak”则可匹配以上 
所有的词条,包括newbak。 



2、能在一条指令中用多个通配符吗? 

可以,如 

rm a*out*tmp? 

该命令可以删除一系列临时性的输出文件,如ab.out.temp1、ab.out.temp1 
等。 



3、如何利用通配符使指令更灵活? 

UNIX可将有一定关的文件看作一集合的一部分,用户可以用该集合去匹配。 
所以,如果你需要删除file1.temp、file2.temp……file9.temp,只须健入: 

rm file[0-9].temp 

该技巧的用处在于可以用删除那些相要删除的文件。如果你每天都要为一个 
非常重要的数据库做一个“dump”报告,你把文件存入dump.'date%h%d', 
它包括一系列文件如下: 

dump.jun23 

dump jun24 

dump jun25 

dump.jun26 

再让我们假设因为每个文件的容量都在100M左右,所以磁盘空间很快会被占满, 
因此需要每隔几天删去一些老的文件,只留下最近的两个文件,为此,键入: 

rm –i du*[34] 

这条指令将删去那些以“du”开头并以“3”或“4”结尾的文件。 
阅读(1459) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~