红联Linux门户
Linux帮助

Linux通配符

发布时间:2005-12-09 00:43:52来源:红联作者:koov
通配符

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”结尾的文件。
文章评论

共有 8 条评论

  1. itsme 于 2010-03-22 14:25:08发表:

    学习了,谢谢楼主

  2. itsme 于 2010-03-22 14:25:02发表:

    学习了,谢谢楼主

  3. kxajd001 于 2009-07-24 00:00:37发表:

    还是先留下 慢慢看 :0wpoi2

  4. balini 于 2009-07-18 19:47:07发表:

    刚安装linux,都不懂那是什么意思的。

  5. wjjyobbo 于 2009-07-16 19:43:20发表:

    真要好好学习学习~

  6. hantu 于 2009-07-10 07:42:49发表:

    多用通配可省不少力

  7. langhaife 于 2009-07-09 13:54:45发表:

    太帅了 谢谢 就要这个

  8. ugvfire 于 2005-12-19 20:36:06发表:

    ?LINUX一?都不熟