一、find
1.命令
find path_name option file_name [-exec | -ok command {} ;]
在path_name下查找file_name文件和目录
参数
- name name : 文件名称符合 name 的文件
- iname name : 文件名称符合 name 的文件,忽略大小写
- type c : 文件类型是 c 的文件(文件类型有:普通文件f,目录d,符号链接 l,字符设备c,块设备b,套接字s,FIFO-p)
- perm n : 权限是n的文件,参数为文件对应的权限码
- maxdepth n : 限制遍历的目录最大深度
- mindefth n : 限制遍历的目录最小深度
- size n : 文件大小 是 n 单位(b:块, c:字节, w:字, k:千字节, M:兆字节, G:吉字节)
- amin n : 在过去 n 分钟内被读取过
- atime n : 在过去n天内被读取过的文件
- cmin n : 在过去 n 分钟内被修改过
- ctime n : 在过去n天内被修改过的文件
- exec command {} : 执行命令,注意以";"结尾,{}表示前面find查找出来的文件名
- ok command {} : 执行命令,表示执行命令前进行询问
2.栗子
find . -name t.txt # 在当前目录查找文件名为t.txt的文件
find . -name "*.txt" # 后缀为 .txt 的文件列出来:
find . -size +30c -name t.txt # 在当前目录查找文件大小大于30个字节的文件名为t.txt的文件
find . -name t.txt -exec ls -lh {} ; # 在当前目录查找文件名文t.txt的文件,并执行ls -lh命令
二、locate
locate 与 find 不同: find 是去硬盘找文件,locate 只在/var/lib/mlocate/mlocate.db资料库中找
locate option file_name
- i : 忽略大小写
- c : 不输出文件名,仅计算找到的文件数量
- l : 仅输出几行的意思,例如输出5行则是-l 5
- r : 后面可接正则表达式的显示方式
locate搜索的是一个数据库默认情况下 updatedb 每天执行一次,可以手动执行updatedb命令
updatedb
三、grep
1.命令
grep option pattern file_name
- i : 忽略大小写(ignore case)
- v : 反过来(invert),只打印没有匹配的,而匹配的反而不打印
- n : 显示行号
- w : 被匹配的文本只能是单词,而不能是单词中的某一部分
- c : 显示总共有多少行被匹配到了,而不是显示被匹配到的内容
- o : 只显示被模式匹配到的字符串
- -A 5 可以显示匹配内容以及后面的5行内容
- -B 5 可以显示匹配内容以及前面的5行内容
- -C 5 可以显示匹配内容以及前后面的5行内容
2.栗子
grep Hello -w t.txt # 在t.txt文件查找包含Hello单词的行,打印出来