目录
查找与检索
1. find
根据文件名查找
find [OPTION] path… [expression]
在目录中搜索文件,path 指定目录路径,系统从这里开始沿着目录树向下查找文件。它是一个路径列表,相互用空格分离,如果不写path,那么默认为当前目录。Expression 是 find 命令接受的表达式,find 命令的所有操作都是针对表达式的。
一条最常用的find命令--在当前目录及子目录下查找所有以file开头的文件名。
$ find . -name 'file*' 从当前开始目录递归查找 file 开头的文件名
$ find / -name 'vimrc' 从根目录开始查找文件名为 vimrc 的文件或目录
$ find ~ -name '*.c' 从此用户的家目录开始查找,文件后缀为 .c 的文件
find 默认有递归的的功能,会递归在子目录里面寻找,但是 grep 默认没有递归的功能,需要加参数 -R 才会连同子目录所有文件一起查找。
2. grep
根据内容检索
grep [options] PATTERN [FILE...]
在指定文件中搜索特定的内容,并将含有这些内容的行输出到标准输出。若不指定文件名,则从标准输入读取。
[options] 部分包含的主要参数:
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
-R: 连同子目录中所有文件一起查找。
比如到系统头文件目录下查找所有包含的文件
$ grep 'printf' /usr/include -R