路径名匹配功能,也叫通配(globbing)。
常用模式
模式 | 匹配项 |
---|---|
?, * | 任一字符,任何零个或更多字符组成的字符串 |
~, ~username | 当前用户的主目录,username用户的主目录 |
~+, ~- | 当前工作目录,上一个工作目录 |
[abc], [!abc]或[^abc] | abc中任一字符,不包含abc中任一字符 |
[:alpha:], [:alnum:] | 任何字母字符,任何字母字符或数字 |
[:lower:], [:upper:] | 任何小写字符,任何大写字符 |
[:digit:] | 任一数字,即0-9 |
[:space:] | 任一空白字符,如制表符、换行符、回车符、换页符、空格等 |
技巧1:大括号扩展
echo {Sunday, Monday, Tuesday, Wednesday}.log
echo file{1..3}.txt # file1.txt file2.txt file3.txt
echo file{a..c}.txt
echo file{a, b}{1, 2}.txt # 4 files
echo file{a{1, 2}, b, c}.txt # 4 files: filea1.txt filea2.txt fileb.txt filec.txt
技巧2:命令替换(``和$)
用输出替换命令本身。
echo Today is `date +%A`
echo The time is $(date +%M) minutes past $(date +%1%p)
echo $host