find和xargs的一些用法

find . -name *.c
find: missing conjunction, why?
SHELL会把*.c直接扩展成当前工作目录的多个.c文件,所以必须用单引号'*.c'或者/*.c进行转义。
 
find . -name *.c |xargs grep 'test'
因为grep可以支持多个传入参数进行文件搜索,因此等价于
find . -name *.c
a.c
b.c
c.c
等价于 grep 'test' a.c b.c c.c
 
xargs后面跟的command必须可以在$PATH或者当前工作目录里面可以找到。
xargs有两个有用的参数-t -n1
-t   ------ 查看每次xargs执行的command
-n1 ------ 管道传入数据的划分
find . -name | xargs grep -n1 'test'
grep 'test' a.c
grep 'test' b.c
grep 'test' c.c
分成三条命令执行,n2, nN依此类推~~
 
还是要清楚SHELL的“自动化”本质呀~~~ 

你可能感兴趣的:(工作,shell,command,扩展,Path,n2)