Linux之通配符使用
原创
©著作权归作者所有:来自51CTO博客作者Rickyyan的原创作品,请联系作者获取转载授权,否则将追究法律责任
通配符与正则表达式不一样,通配符一般用于用户命令行bash环境,正则表达式更多的是在三剑客中使用
* :表示所有
? :任意一个字符
; :两个命令之间的分隔符
# :在文件里是注释
| :管道
~ :当前用户家目录
- :上一次的目录
$ :变量前需要加$
/ :路径分隔符
# 重定向
shell中:
0表示标准输入
1表示标准输出
2表示标准错误输出
>或1> :标准输出重定向
>>或1>> :追加标准输出重定向
2> :标准错误输出重定向
<
<< :标准输入(追加)重定向
> file 2> /dev/ull 标准输出重定向到file,标准错误输出重定向到/dev/ull
> file 2>&1 标准输出重定向到file,标准错误输出重定向到标准输出,即file
&> file 标准输出重定向到file,标准错误输出重定向到标准输出,即file
#引号
'' :单引号不具有变量置换功能,所见即所得
"" :双引号具有变量置换功能【如果是变量或者命令还需要``或者$()】
`` :tab键上面的键,反引号,中间为命令,会先执行,等价于$()
# echo 'date'
date
# echo "date"
date
# echo "`date`"
2018年 04月 08日 星期日 18:40:16 CST
# echo '`date`'
`date`
# echo "$(date)"
2018年 04月 08日 星期日 18:41:06 CST
# echo '$(date)'
$(date)
# ls -l `which mkdir`
-rwxr-xr-x. 1 root root 43788 6月 22 2012 /bin/mkdir
# ls -l $(which mkdir)
-rwxr-xr-x. 1 root root 43788 6月 22 2012 /bin/mkdir
#
不加单引号和双引号
# echo date
date
# echo `date`
2018年 04月 15日 星期日 11:46:27 CST
# echo $(date)
2018年 04月 15日 星期日 11:46:39 CST
# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
#
# echo '$PATH'
$PATH
# echo "$PATH"
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
#
{} :命令序列,区块组合【大括号还可以是字母,而seq只能是数字排序】
# echo ricky{1,2,3}
ricky1 ricky2 ricky3
#
# mkdir /data/{date1,date2}/ori -p
# tree /data/
/data/
├── date1
│ └── ori
└── date2
└── ori
4 directories, 0 files
#逻辑运算
! :取反
&& :并且,两边条件同时满足,相当于and
|| :相当于or,当前执行失败,执行后一个指令