通配符与 xargs 命令详解
键盘通配符
当查找文件时,不知道真正字符或不想键入完整名字时,命令又不支持正则表达式模块时,常常使用通配符代替一个或多个真正字符。
* 代替0个或多个字符。
? 匹配任何单个字符,且不能为空字符。
[] 匹配中括号内的任意一个字符。
通配符示例:
ls *.conf
ls /home/*.sh
ls h*.conf
ls test?.c
ls [abc]*
shell特殊字符命令
< 标准输入(stdio),将命令中接收输入的途径由默认的键盘更改为指定的文件,并删除以前的数据。
<< 标准输入,将命令中接收输入的途径由默认的键盘更改为指定的文件,文件结尾加入内容,不会删除已有数据。
> 标准输出(stdout),将命令的执行结果输出到指定的文件中,并删除以前的数据。
>> 标准输出,将命令执行的结果追加输出到指定文件,文件结尾加入内容,不会删除已有数据。
2> 标准错误(stderr),清空指定文件的内容,并将标准错误信息保存到该文件中。
2>> 标准错误,将标准错误信息追加输出到指定的文件中。
&> 将标准错误的内容全部保存到指定的文件中。
注:箭头的指向就是数据的流向。
| 管道(把前一个命令结果的输出交给后一个程序处理)。
/ 让一个有意义的字符转义成普通字符。
'' 单引号,不保留属性,全部当成普通字符。
"" 双引号,用于原本保留属性。
`` 反引号用于命令替换, ·· 中放可执行的命令,bash会将命令执行得的结果视为一个变量或变量列表。
{} 生产字符或数字序列,一般配合 echo 等命令使用,find命令里的{}意思是前面命令的结果。
(()) 数值运算,用法灵活,效率高
xargs 是命令传递之间的一个参数过滤器,这意味着将包含换行和空白的输出通过管道交给 xargs 处理,用空格取代换行和空白,变成单行。
命令格式:somecommand |xargs -parameter command
参数:
- -p 当每次执行一个分隔符(默认的xargs分隔符是空格)的时候询问一次用户。
- -n num num为个数,表示命令在执行的时候一行用的分隔符的个数,默认是用所有的。
- -t 表示先打印,然后再执行。
- -i 一行一行赋值给 {},默认是单行。
- -r 当xargs的输入为空的时候则停止xargs,不用再去执行了。
- -L num 从标准输入一次读取 num 行送给 command 命令。
- -l 同 -L。
- -d delim delim分隔符,这里修改的是xargs的分隔符。