linux shell基础<4>

linux shell基础<4>

9.文件名匹配:文件名的匹配用到了通配符,通配符在好多地方都可以使用,好像使用规则还是一样的,如 数据库、struts2...
              * 表示任意多个字符  eg: rm *.log  // 删除所有后缀为log的文件
              ! 表示取反的意思,但需要配合[]的使用,否则会被解释成历史记录的替换    eg: rm *[!8]  //删除文件名结尾不是8且后缀是log的文件  注:! 需放在[]里面
                  *[!8]*.log  //这样会删除所有文件  因为你把*放在了!两边,因为 shell 将其解释为"所有名称中任何位置都不含该字符的文件"。
              ? 表示一个字符 一个问号只能代表一个字符   eg: rm *.????  //删除后缀为四个字符的文件  rm *[!8]?.log  //删除点号倒数第二位不是8的后缀为log的文件   
                eg: rm [15]*.log  //删除后缀为log且以1或5开头的文件     rm [1-6]*.log  //删除以1到6之间任意数字开头的且后缀为log的文件
10.应用shell中特殊字符: 若在文件名中含有特殊字符,此时就需要注意了. 您可以通过反斜线(back slash)、单引号来引用特殊字符,比如 ! 、$ 、? 或空格
              eg: ls '!'*.log  //列出以!开头的所有log文件