有时候需要知道文件保存在哪个路径下,或者某个字符串在哪个文件中,这时就需要find命令以及find结合管道过滤的技术实现精确查找
1.基于文件名的查找
-name指定的是文件的名字,可以是精确地名字也可以是正则表达式的Pattern
查找当前目录下,名字为file_1的文件
查找当前目录,名字为file_开头的文件或者目录
在当前目录下,名字为file_1,并且忽略大小写的文件或者目录,iname表示名字忽略大小写
2. 基于文件的大小查找,+表示大于多少size,-表示小于多少,什么都不加表示等于
3.基于文件类型的查找,文件类型分为文件f,目录d,链接l,块b等
4.基于文件日期查找,也是用+,-表示大于的和小于的日期
5. 基于用户和组的查找,查找属主是root,属组是root的文件
查找属组是非root的文件
6.基于权限的查找
精确查找,查找文件权限是644的,并且以长格式显示
包含查找,查找文件权限包含的关系
动作处理:
查找到文件后需要对这些文件进行处理,则可能用到的处理有打印,长格式显示,删除,执行
-print是默认的动作,-ls是长格式显示,-delete是删除,-exec是执行动作
一般来说,执行exec的效率不如xargs,因为是遍历的执行,而xargs是一次性作为参数执行
一般来说需要结合xargs来使用处理
find结合grep的使用,常用于定位文件的内容
grep后面的参数,n表示打印行号,R表示递归查找,i表示忽略大小写的查找