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