bash特性之文件名通配(globbing):
*: 任意长度的任意字符
p*d, pad, pbd, pd
*ab*c
?: 匹配任意单字符
[]: 匹配指定范围内的任意单字符
[abc], [a-z], [0-9], [0-9a-z]
[^]:匹配指定范围以外的任意单字符
[^0-9a-z]
字符集合:
[:space:] : 所有空白字符
[:punct:] : 所有标点符号
[:lower:] :所有小写字母
[:upper:]
[:digit:]
[:alnum:]
[:alpha:]
练习:
1、显示/var目录下所有以l开头,以一个小字母结尾,且中间出现一位数字的文件或目录;
# ls /var/l*[[:digit:]]*[[:lower:]]
2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
# ls -d /etc/[[:digit:]]*[^[:digit:]]
3、显示/etc目录下,以非字母开头,后面跟了一个字母及其它任意长度字符的文件或目录;
# ls -d /etc/[^[:alpha:]][[:alpha:]]*
练习:
1、在/tmp/mytest目录中创建以testdir打头,后跟当前日期和时间的空目录,形如testdir-2014-07-03-09-15-33;
# mkdir -pv /tmp/mytest/testdir-$(date +%F-%H-%M-%S)
转载自原文链接, 如需删除请联系管理员。
原文链接:bash特性之文件名通配(globbing),转载请注明来源!