文件的搜索功能
1. find
语法格式 find 搜索的路径 参数(-name -size -type) 属性条件
find /root -name main.cpp
find /root -name "*.cpp"
find ./ -type f #(f代表普通文件 l 链接文件 c字符设备文件 b块设备文件 d 目录文件 p 管道类型)
find ./ -type d -type l
find ./ -szie -4k #(区间在0到3k之间)
find ./ -size +4k #(区间在4k到无穷之间)
find ./ -size 4k #(区间在3k到4k之间)
find ./ -size +1k -size -4k #(区间在1k到3K之间)
find ./ -size -2M
find ./ -size -3G
目录层级
-maxdepth 最多搜索到多少层目录
-mindepth 至少从多少层开始搜索
sudo find ./ -maxdepth 5 -name "*.txt"
sudo find ./ -mindepth 2 -name "*.txt"
同时执行多个操作
find ./ -name "*.txt" -exec ls -l {} \;
find ./ -type p -ok sudo rm -r {} \;
find ./ -minpyth 2 -size -2k | xargs ls -lahF
2.grep
命令用于查找文件里符合条件的字符串
ps -ef | grep tomcat
grep "搜索的内容" 搜索的路径/文件 -rin(参数)
-r(递归) -i(不区分大小写) -n(显示行号)
dongfangedu@ubuntu:/opt$ grep "INCLUDE" ./ -rin
./tools.h:4:#include <stdio.h>
./main.c:1:#include <stdio.h>
./main.c:2:#include"tools.h"
./main.c:3:#include<string.h>
./tools.c:1:#include "tools.h"
3.locate
简化版的find。需要保证数据库中的内容是最新的
sudo updatadb #更新数据库
locate /home/dongfangedu/test 搜索home/dongfangedu目录下的以test开头的文件。
locate passwd -n 5 只显示5条
dongfangedu@ubuntu:/opt$ locate passwd -n 5
/etc/passwd
/etc/passwd-
/etc/pam.d/chpasswd
/etc/pam.d/passwd
/etc/security/opasswd
locate passwd -i 不区分大小写
与locate相似的命令:whereis
whereis passwd
dongfangedu@ubuntu:/opt$ whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1ssl.gz /usr/share/man/man1/passwd.1.gz