Glob 模式
Glob 是什么
glob 是一种文件匹配模式,全称 global,它起源于 Unix 的 bash shell 中,比如在 linux 中常用的 mv *.txt tmp/ 中,*.txt 就使用到了这种模式。
Glob 有哪些用途
在计算机编程中,经常需要对文件或者文件夹进行操作,那么会经常涉及到一些文件或者文件夹的匹配操作,此时就是 Glob 模式大显身手的时候,比如上面的 mv 命令。
大家最熟悉的应用的地方可能给就是 git 中的 .gitignore 中的表达式了,它就是 Glob 模式的一个典型用法。
Glob 用法
以下是表达式的说明,注意 Glob 不匹配任何隐藏文件或文件夹。
| 模式 | 说明 |
|---|---|
* |
匹配除了斜杠(/)之外的所有字符。 Windows上是斜杠(/)和反斜杠(\) |
** |
匹配零个或多个目录及子目录。不包含 . 以及 .. 开头的。 |
? |
匹配任意单个字符。 |
[seq] |
匹配 seq 中的其中一个字符。 |
[!seq] |
匹配不在 seq 中的任意一个字符。 |
\ |
转义符。 |
! |
排除符。 |
?(pattern_list) |
匹配零个或一个在 pattern_list 中的字符串。 |
*(pattern_list) |
匹配零个或多个在 pattern_list 中的字符串。 |
+(pattern_list) |
匹配一个或多个在 pattern_list 中的字符串。 |
@(pattern_list) |
匹配至少一个在 pattern_list 中的字符串。 |
!(pattern_list) |
匹配不在 pattern_list 中的字符串. |
[...] |
POSIX style character classes inside sequences. |
举例
- 匹配 docs 目录下及子目录所有 markdown 文件:
docs/**/*.md - 匹配 大小写的 bin 文件夹:
[Bb]in
各个语言提供的库
- Javascript: https://github.com/isaacs/node-glob
- C#: https://github.com/kthompson/glob
- GO: https://github.com/gobwas/glob
没列出来的,一般语言本身的库提供的有相关功能。
本文地址:http://www.cnblogs.com/savorboard/p/glob.html
作者博客:Savorboard
本文原创授权为:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
Glob 模式的更多相关文章
- Linux shell 通配符 / glob 模式
概念 glob 模式(globbing)也被称之为 shell 通配符,名字的起源来自于 Unix V6 中的 /etc/glob (详见 man 文档).glob 是一种特殊的模式匹配,最常见的是通 ...
- glob模式
在学习gulp的过程中,gulp使用了被称作为glob的文件匹配模式. 接下来我们认识下什么是glob模式. 在计算机编程中,特别是类Unix环境,glob模式通过通配符来匹配文件名.例如:Unix命 ...
- centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课
centos shell基础知识 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 ...
- python glob标准库基础学习
#glob文件名模式匹配#作用:使用unix shell规则查找与一个模式匹配文件名"""尽管glob api很小,但这个模块很强大,只要程序需要查找文件系统中名字与某种 ...
- node中glob模块总结
参考文章: githup_glob node-glob学习 前言: 最近在学习webpack配置, 其中有一项glob配置入口文件, 来获取对应的文件名, 达到入口entry和output文 ...
- fnmatch:Unix式glob模式匹配,简单场景下可以代替正则
介绍 fnmatch模块用于根据glob模式(如Unix shell所使用的的模式)比较文件名 简单匹配 import fnmatch ''' fnmatch将一个文件名与一个模式进行比较,并返回一个 ...
- GitHub实战系列~3.提交github的时候过滤某些文件 2015-12-10
GitHub实战系列汇总:http://www.cnblogs.com/dunitian/p/5038719.html ———————————————————————————————————————— ...
- Linux shell脚本编程(二)
Linux shell脚本编程(二) 练习:求100以内所有偶数之和; 使用至少三种方法实现; 示例1: #!/bin/bash # declare -i sum=0 #声明一个变量求和,初始值为0 ...
- SQLite源程序分析之sqlite3.c
/****************************************************************************** ** This file is an a ...
随机推荐
- 安装redis cluster时:undefined method `invoke_with_build_args' for nil:NilClass
gem install -l redis-3.3.3.gem ERROR: Loading command: install (LoadError) cannot load such file -- ...
- Photoshop 更换证件照底色
1.打开photoshop CS6. 2.打开照片 (上栏)文件---->打开 或者,直接把照片拖进ps中. 3.复制图层 右击背景,点击复制图层 (复制图层的作用是,如果对图层操作错误,可以 ...
- JavaWeb高级编程(下篇)
Java标准标签库 JSP标签语法中包含一些简写可以帮助轻松编写JSP.这些简写中第一个就是taglib指令. <%@ taglib prefix="c" uri=" ...
- 可并堆模板题-mergeable heap
Description 有n个点,第i个点标号为i,有两种操作:0 x y 表示把x所在堆和y所在堆合并.1 x 表示询问x所在堆的最小权. Input 第一行两个整数n,m,表示有n个点m个操作. ...
- NumPy 基于已有数据创建数组
原文:Python Numpy 教程 章节 Numpy 介绍 Numpy 安装 NumPy ndarray NumPy 数据类型 NumPy 数组创建 NumPy 基于已有数据创建数组 NumPy 基 ...
- PGSQL基本操作语句
; --更新数据 ,,) ; --插入数据 ORDER BY app_name,flag asc/desc ; --查询数据并且排序 offset ; --查询起点0开始查询,返回5条数据 ORDER ...
- mysql 统计值为NULL不为0的问题
今天在写一个接口的时候是要统计数据,但是突然发现报错,类型不匹配的问题,我返回的是Int类型的为啥会类型不匹配呢,真的是奇怪 然后把代码丢到正式环境里面运行一下,发现值为null 一下子就傻眼了,不可 ...
- hdu 1251 统计难题 前缀出现次数
统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others)Total Submi ...
- jmeter --- 压测时,如何让串联压测多个接口
1.新建测试计划,在测试计划里勾选“独立运行每个线程组” 2.分别在每个线程组,添加聚合报告,以得到每个线程组的压测结果 3.设置不同接口压测的vu等,并为每个线程组,设置合理的启动延迟时间
- 服务器搭建---Linux安装Node.js
先去官网下载:https://nodejs.org/en/download/ 把压缩包上传到服务器的/usr/local/soft(博主习惯)文件夹下 解压文件: cd /usr/local/sof ...