日期:2014-05-16  浏览次数:20736 次

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文件