find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
最常用的几个属性如下介绍:.
path:查找的目录的路径
expression : 表达式
-options: 常用选项
-print : 将匹配的文件输出
-exec: 对筛选出的文件执行shell命令
-ok :也是执行shell命令,只是比较安全,在执行之前给出提示,需要再次确认
例:find ./ -size 0 –exec rm {}\ //删除文件大小为0的文件
find . – type f –exec ls –l {}\ //列出筛选出得文件.
find . –name “*.conf” –ok rm {}\ //删除当前目录下的.conf文件,并给出提示,确认执行
find常用选项
-name 按文件名查找 find . –name “*.c” //查找.c扩展的文件
-perm 按文件权限来查找 find . –perm 755 – print
-user 按照文件属主来查找文件 find ~ -user sam –print 在home目录下查找属主为sam的的文件
-group 按照文件属的组来查找文件
-mtime –n + n 按照文件的更改时间来查找文件 find / -mtime -5 在根目录下查找更改时间在5日以内的文件
-type 查找某一类型的文件:
b 块设备文件
d 目录
c 字符设备文件
p 管道文件
L 符号链接文件
f 普通文件
find ./ tyoed f /查找当前目录下的普通文件
-size n:根据文件大小
follow : 如果find命令遇到符号连接文件,就跟踪链接所致的文件
注意:find命令将匹配到的文件传递给exec执行,但是有些系统对exec执行得长度有限制,有时会出现溢出错误。这时需要配合xargs使用。因为xargs每次只获取一部分数据来处理。
例:find / -name “corez” – print | xargs echo “”>/tmp/corg.log在整个系统中查找内存信息转储文件(core dump) ,然后把结果保存到/tmp/core.log中。
Find . –type f -print |xargs grep “ss” 用grep命令在查询出的文件中搜索ss
gep命令
grep [OPTIONS] PATTERN [FILE...]
grep正则表达式
^ 行的开始,如:’^m’ 匹配以m开头的行
$ 行的结束,如: ‘m$’ 匹配以m结尾的行
. 匹配一个非换行符的字符 如:’gr.p’ 匹配gr后接一个字符,然后是p
*匹配零个多个先前字符:如:’*m’匹配一个或多个空格后紧跟m的行
[]匹配一个指定范围内的字符.
[^]匹配一个不再指定范围内的字符
\(..\)标记匹配字符 如: ‘\(love\)’, love标记为1
\< 单词的开始,如: ‘\<m’匹配m开头的单词的行
\>单词的结束
x\{m\}连续重复字符x,m次。如: ‘o\{5\}’匹配至少有5个o的行
x\{m,\}连续重复x.,至少m次
x\{m,n\}连续重复字符x,至少m次,至多n次
\w 匹配一个文字和数字字符
\W 非数字字符,特殊符号
\b单词锁定 如: \b表示单词的开始和结束。’\b hello\b’匹配单词hello
gep的常用选项
-? 同时显示匹配行的上下n行。
-c 只打印匹配的行数,不显示匹配的内容
-f 从文件中提取模板
-i 略大小写
-q 取消显示,返回退出状态
-l 显示匹配的文件清单
-L 显示不匹配文件清单。
-n 打印行号
-s 不显示读取文件错误信息
-w \<hello\>搜素单词
-V 显示版本信息