工作中常用的命令:linux

时间:2021-07-25 01:49:52

简单点说,grep是查找匹配条件的行,find是搜索匹配条件的文件。

ct@ubuntu:~/Desktop/mydriver$ grep -nr ./"include"

结果: 在当前目录下显示行    r -- 递归  n---行数  ---i 查找时忽略大小写

.led.o.cmd:34:  arch/x86/include/asm/posix_types.h \
.led.o.cmd:36:  arch/x86/include/uapi/asm/posix_types_32.h \
.led.o.cmd:72:  /usr/lib/gcc/i686-linux-gnu/4.8/include/stdarg.h \

ct@ubuntu:~/Desktop/mydriver$ grep -rn "open" . --include=*.c

结果:     . --include=*.c  -----当前目录下的 c文件中

./led_app.c:11:    int fd = open("/dev/led", O_RDWR|O_CREAT);
./led_app.c:13:    printf("/dev/led open %d\n",fd);
./led_app.c:16:        printf("/dev/hello open fail \n");

./led.c:17:int led_drv_open(struct inode * node, struct file* h_fl)


ct@ubuntu:~$ find . -type f -name "*.c" | xargs grep "return"

结果:find . 当前目录  -type f 文件类型 f普通文件  xargs  递归查找    目标字符可带*等符号  可不带引号

./Desktop/quelink.c:    return ( (ql->head==ql->rear)&&(ql->head==ql->front) );
./Desktop/quelink.c:            return;
ct@ubuntu:~$ find . -name '*.c' -exec grep -l "include" {} \;

结果:  exec选项后面跟随着所要执行的命令或脚本,然后是一对儿 {},一个空格和一个\,最后是一个分号。     cmd {} \;

参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。
{} 花括号代表前面find查找出来的文件名

./Desktop/quelink.c

./Desktop/chain.c
./Desktop/test.c