一、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 . -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 : 只显示被模式匹配到的字符串
2.栗子
grep Hello -w t.txt # 在t.txt文件查找包含Hello单词的行,打印出来
更多请阅读