shell中名称扩展
时间:2019-04-16 23:59:04 来源:igfitidea点击:
Bash shell通过以下技术来支持路径名扩展。
花括号
使用花括号名称扩展可以节省命令的输入时间。
花括号名称扩展({..}
)的语法是:
{ pattern1, pattern2, patternN } text{ pattern1, pattern2, patternN } text1{ pattern1, pattern2, patternN }text2 command something/{ pattern1, pattern2, patternN }
示例
字符串模式
echo I like {tom,jerry}
输出
I like tom jerry
echo file{1,2,3}.txt
注意file后面不能有空格
输出:
file1.txt file2.txt file3.txt
或者
echo file{1..5}.txt
输出:
file1.txt file2.txt file3.txt file4.txt file5.txt
同时查看多个文件
ls /etc/{resolv.conf,hosts,passwd}
等同于
ls -l /etc/resolv.conf /etc/hosts /etc/passwd
同时删除多个文件 hello.sh, hello.py, hello.pl, hello.c
rm -v hello.{sh,py,pl,c}
同时创建多个目录
D=/webroot mkdir -p $D/{dev,etc,bin,sbin,var,tmp}
通配符
Bash支持以下三个简单的通配符:
* - 匹配任何字符串,包括空字符串
? -匹配任何一个字符。
[...] -匹配括号内的任一字符。
示例
查看所有 c文件:
ls *.c
查看etc下所有配置文件
ls /etc/*.conf
可以将通配符与花括号结合使用:
ls *.{c,h}
列出png文件 image1.png, image2.png...image7.png, imageX.png
ls image?.png
列出所有文件名以a或者b开头的文件
ls /etc/[ab]*.conf