linux文件搜索指令
文件搜索指令locate,find
命令搜索指令 whereis 与 which
字符串搜索指令grep
find命令与grep命令的区别
1. locate 文件名
后台数据库中按文件名搜索,搜索速度更快,功能单一(但是效率很高)
是因为locate查询文件并不是遍历整个操作系统,而是从搜索后台文件数据库。
/var/lib/mlocate
#locate 命令搜索的后台数据库
linux数据库更新频率是每天一次,并不是实时更新的!
可以通过命令 updatedb ----强制更新数据库
因为locate命令搜索指令遵循下面的配置文件
2. 命令搜索指令 whereis 和which
linux很有英语范
whereis -b ---- 只查找可执行文件
whereis -m ----只查看帮助文档
(whereis 只能用于查找系统命令)
which 和whereis 的区别是,它可以查看命令的别名
补充知识点:echo $PATH (环境变量配置)
3.功能强大的文件搜索命令 find
find 【搜索范围】【搜索条件】
find / -name install.log
find后面的文件名必须一摸一样,我们可以使用通配符模糊查询
通配符: * 匹配任意内容
?匹配任意一个字符串
[]匹配任意一个中括号内的字符
下面看练习:
find /root -iname install.log #不区分大小写
find /root -user root #按所有者搜索
find /root -nouser #查找没有所有者的文件
注意:一般情况下linux的文件都是有所有者的,没有所有者的都是垃圾文件(文件是linux自己产生的)。在linux根目录下,sys和proc是linux内核交互的地方可能产生没有所有者的文件,其他地方碰到就手动删除。
find /var/log/ -mtime +10 #查找10天前修改的文件
-10 查找10天内修改的文件 atime ----文件访问时间
10 10天当天修改的文件 ctime ----改变文件属性
+10 10天前修改的文件 mtime ----改变文件内容
find . -size 25k #查找文件大小是25KB的文件
-25 ----小于25kb的文件
25 ----等于25kb
+25 ----大于25kb的文件
find . -inum 262422 #查找i节点为262422的文件
第二条语句实在第一条的基础之上,查看详细信息。
注意:只要看到-execl 后面就要加{} \; 这是格式。(ps:\和;之间要加空格!!!)
禽兽啊!!!不仅前面的空格不能丢,后面的还不能有空格。。。
4. 搜索字符串命令 grep
. grep 【选项】 字符串 文件名
选项: -i 忽略大小写
-v 排除指定字符串
find命令与grep命令的区别:
find命令:在系统中搜索符合条件的文件名,如果需要匹配,则使用通配符匹配,通配符是完全匹配。
grep命令:在文件中搜索符合条件的字符串,如果需要匹配则使用正则表达式匹配,正则表达式时包含匹配。
正则表达式,后续学习重点!