文件名通配
命令别名
alias cls='clear'
在shell中定义的别名仅在当前shell生命周期中有效;
别名的有效范围:当前shell进程
unalias cls
\CMD 使用命令本身
命令替换 $(pwd) , 反引号:`pwd`
把命令中某个子命令替换为其执行结果的过程
echo "The current directory is $(pwd)."
touch ./file-$(date +%F-%H-%M-%S).txt
bash支持的引号:
``:命令替换
"":弱引用,可以实现变量替换
'':强引用,不完成变量替换
文件名通配,globbing
*,匹配任意长度的任意字符
?,匹配任意单个字符
[],匹配指定范围内的任意单个字符
[abc],[a-m],[a-z],[A-Z],[0-9],[a-zA-Z],[0-9a-zA-Z]
[:space:],表示空白字符
[:punct:],表示所有标点符号
[:lower:],表示小写字母
[:upper:],表示大写字母
[:alpha:],表示大小写字母
^[:alpha:],表示非字母
[:digit:],表示数字
[:alnum:],表示数字和大小写字母(alpha number)
#man 7 glob
[^],脱字符,匹配指定范围外的任意单个字符
以一个字母开头,后面跟数字的文件:ls [[:alpha:]][[:digit:]]*
以a开头,后面跟任意字符的文件:ls a*
以a开头,以3结尾的文件:ls a*3
以字母开头,后面跟任意数字的文件:ls [a-zA-Z][0-9]*
以a开头,后面跟一个数字:ls a[0-9]*
以任意一个字符开头,后面跟一个y,又跟其他任意字符的文件:ls ?y*
以字母开头,中间跟任意字符,以数字结尾: ls [a-zA-Z]*[0-9]
以非数字开头的所有文件:ls [^0-9]*
以字母开头,中间包含空白字符,以字母结尾的文件:ls [[:alpha:]]*[[:space:]]*[[:alpha:]]
练习:
1.显示所有以a或m开头的文件:ls [am]*
2.显示所有文件名中包含了数字的文件:ls *[0-9]*
3.显示所有以数字结尾且文件名中不包含空白的文件:正则表达式
4.显示文件名中包含了非字母或数字的特殊符号的文件:ls *[^[:alnum:]]*