Shell glob
在Linux中,glob是用来匹配路径名的通配符,glob主要包含以下4种:
Wildcard Matching
* 匹配0个或者多个字符,比如d*,可以匹配d, d1, dd1
?匹配单个字符,比如d?,只匹配dd,不匹配d
Character classes
包含在[]中的字符只会被匹配一个,并且[]里面不可以为空。比如[abc]匹配a,b,c中其中一个字符。需要注意的是[]里面可以包含[,],!,?,*,\这些特殊字符,因此[[!\*?]]匹配[,!,\,*,?中的一个字符
Range
两个字符中间用'-'连接表示range,比如[0-9]等同于[0123456789]。需要注意的是,如果-出现在开头或者结尾,并不表示range,比如[-a]或者[a-]匹配-,a字符中的一个。
Complementation
[!abc]表示匹配a,b,c之外的一个字符。
对于glob有三点需要注意:
1 上面任何形式glob都不匹配/字符,因此假设有如下目录结构:
D
|
-----------------------
| |
a.txt DD
|
a.txt
那么在D目录下运行ls *.txt只会列出D目录下的a.txt,而不会列出DD/a.txt
2 任何以.开头命名的文件都必须在glob中显示指定才能匹配,比如有一个文件.abc,那么rm *匹配不到.abc,只能使用rm .*
3 glob与正则表达式不一样,glog只匹配路径名,而不是匹配文件的内容,并且glob与正则表达式虽然有相同的通配符,但是意义却不一样,比如a*k在glob中可以匹配ak,abk,abck,但在正则表示中表示匹配ak,aak,aaak。
参考:
man 7 glob
Shell glob的更多相关文章
- shell tips
1.shopt 命令可以设置shell的可选参数 shopt [-psu] [optname...] -s 开启某个选项 -u 关闭某个选项 -p 列出所有可设置的选项 其中开启extglob选项,s ...
- shell中的循环语句
for语法格式 for var in list;do commands done 其中list可以包含: 1) 直接写 for alpha in a b c d;do echo $alpha done ...
- Python glob使用
http://www.cnblogs.com/lovemo1314/archive/2011/04/26/2029556.html 说明: glob是python自己带的一个文件操作相关模块,用它可以 ...
- Ejabberd源码解析前奏--配置
一.基本配置 配置文件将在你第一次启动ejabberd时加载,从该文件中获得的内容将被解析并存储到内部的ejabberd数据库中,以后的配置将从数据库加载,并且任何配置文件里的命令都会被添加到 ...
- Bash Scripting Learn Notes
References: [1] http://www.tldp.org/LDP/Bash-Beginners-Guide/html/ 1. Executing programs from a scri ...
- Yum软件包管理详解
目录 1. Yum 1.1 检查和更新包 1.1.1 查询更新 1.1.2 更新包 1.1.3 使用 ISO 和 Yum 离线升级系统 1.2 使用包 1.2.1 搜索包 1.2.2 列出包 1.2. ...
- IOCCC(The International Obfuscated C Code Contest)
国际 C 语言混乱代码大赛(IOCCC, The International Obfuscated C Code Contest)是一项国际编程赛事,从 1984 年开始,每年举办一次(1997年.1 ...
- git 使用 gitignore
git 使用 git简介 git 命令 git 忽略文件 git 作用:版本控制 Git 是一个开源的分布式版本控制软件,用以有效.高速的处理从很小到非常大的项目版本管理. Git 最初是由Li ...
- git 忽略文件 .gitignore 以及规则
git提供了文件忽略系统,当对工作区某个目录或文件设置了忽略后,在执行status查看状态时,被忽略的文件即使存在也不会显示出来. 这样我就可以把那些不需要上传,不需要保留的文件或目录忽略掉(比如一些 ...
随机推荐
- python进行base64编解码
[转] 直接上代码 import base64 fin = open(r"D:\2.zip", "rb") fout = open(r"D:\2.x. ...
- Windows下Mysql解压缩版配置安装与卸载
安装: ①解压Mysql到合适的位置! ②以管理员身份运行命令提示符(cmd),cd C:\Documents and Settings\Administrator\桌面\mysql-5.6.24-w ...
- js中的function
Math方法详解 Math.sqrt(x) 计算X开平方 Math.sqrt(x,y) 计算xy Math.round(x) 计算x 四舍五入的值 getBoundingClientRe ...
- log在线生成器 html中如何设置浏览器中标题前的logo
制作logo的地址:http://www.logomaker.com.cn/ 设置网站logo的方法 在<head></head>标签之间输入<link rel=&quo ...
- django解决跨域请求的问题
跨域请求可以用jsonp来解决,不过今天我发现一个很好用的包:django-cors-headers 只需要简单地配置一下就可 被请求方的setting.py中的配置如下: INSTALLED_APP ...
- Java笔记--Java的List、Iterator用法
1. List的使用 准备知识: List继承自Collection接口.List是一种有序集合,List中的元素可以根据索引(顺序号:元素在集合中处于的位置信息)进行取得/删除/插入操作. 跟Set ...
- HDFS配置文件内容解释
配置概述 hadoop-env.sh 一个可由hadoop脚本调用的bourne shell文件,它制定hadoop要用的JDK环境变量.守护进程JDK选项.pid文件和log文件夹 core-sit ...
- 十个iOS面试问题
十个iOS面试问题 十个iOS面试问题.不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的好机会. ...
- Weekend counter
Weekend counter Sofia has given you a schedule and two dates and told you she needs help planning he ...
- c++ 07
一.多重继承 1)子类同时拥有两个或两个以上的基类,同时继承了所有基类的属性和行为. 销售员 经理 \ / 销售经理 汽车 客用特性 商用特性 \ | / ...