Linux操作系统文件查找

Posted lv1572407

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux操作系统文件查找相关的知识,希望对你有一定的参考价值。

++++++++++++++++++++++++++++++++++++++++++++++++
标题:Linux操作系统的文件或命令查找
内容:命令查找(which和whereis)、文件查找(locate和find)
时间:2019年4月15日
++++++++++++++++++++++++++++++++++++++++++++++++
1. 系统命令文件查找
[[email protected] ~]# which yum //会遍历环境变量的是否存在
/usr/bin/yum
[[email protected] ~]# whereis yum //遍历环境变量、遍历man手册
yum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8.gz


2. 常规文件查找
2.1 locate常规文件查找
[[email protected] ~]# mkdir /dir100
[[email protected] ~]# touch /dir100/file001
[[email protected] ~]# locate /dir100/ file001 //数据库未更新
[[email protected] ~]# updatedb //手动更新数据库
[[email protected] ~]# locate /dir100/ file001
/dir100/file001
[[email protected] ~]# rm -rf /dir100/file001
[[email protected] ~]# locate /dir100/ file001 //删除文件后数据库未更新
/dir100/file001
[[email protected] ~]# updatedb
[[email protected] ~]# locate /dir100/ file001
locate知识点总结:
locate是通过数据库进行比对查找,查找速度非常快,但结果不一定准确。
locate配置的数据库位置"/var/lib/mlocate/mlocate.db"。
locate查询系统固定的文件效率会很高。
locate使用的数据库系统每日会自动更新一次。
使用updatedb命令手工更新数据库可能造成大量的IO操作,增加系统负担。

2.2 find常规文件查找
语法结构:find [options] [path] [expression]
++文件名称查找++
[[email protected] ~]# find /etc/ -name ‘ifcfg-eth0‘
[[email protected] ~]# find /etc/ -iname ‘ifcfG-eth0‘ //忽略文件名称大小写
[[email protected] ~]# find /etc/ -name ‘*eth0*‘
++文件属主属组以及类型查找++
[[email protected] ~]# find / -user mysql -name ‘file*‘
[[email protected] ~]# find / -group mysql -type d -iname ‘MYSQL‘
[[email protected] ~]# find / -type p |head -n 1
++文件大小查找++
[[email protected] ~]# find /etc/ -size 5M
[[email protected] ~]# find /etc/ -size +5M
[[email protected] ~]# find /etc/ -size -5M
++文件时间查找++
[[email protected] ~]# find /dir100/ -atime -1 //访问时间--realtime
[[email protected] ~]# find /dir100/ -mtime 1 //内容修改时间
[[email protected] ~]# find /dir100/ -ctime +1 //属性修改时间
++按文件所在深度++
[[email protected] ~]# find /etc/ -maxdepth 4 -iname ‘ifcfg-eth0‘
[[email protected] ~]# find /etc/ -mindepth 5 -iname ‘ifcfg-eth0‘ //什么都没有
++按权限查找++
[[email protected] ~]# find /dir100/ -perm 222 //权限等于
[[email protected] ~]# find /dir100/ -perm -0111 //权限包含
++其他高级用法++
[[email protected] ~]# time find / -iname "ifcfg-eth0" //效率较低
[[email protected] ~]# time find ‘ls /‘ -iname "ifcfg-eth0" //效率较高

[[email protected] ~]# find /etc/ -regex ‘.*ifcfg-eth[0-9]‘ //使用正则表达式匹配

[[email protected] ~]# find /home/ -nogroup -o -nouser //无主对象
[[email protected] ~]# find /home/ ( -nogroup -o -nouser ) -delete //删除无主对象
[[email protected] ~]# find /etc/ ( -size +5M -a -size -10M ) -print
[[email protected] ~]# find /etc/ -iname ‘ifcfg-eth0‘ -ls //长格式显示,类似于ls -l,但不同于ls -l

[[email protected] ~]# find /dir100/ -iname ‘file*‘ -exec cp {} /tmp ; //强制覆盖
[[email protected] ~]# find /dir100/ -iname ‘file*‘ -ok cp {} /tmp ; //覆盖提示

[[email protected] ~]# find /tmp/ -name ‘file*‘ -exec rm -rf {} ; //等于rm -rf file1;rm -rf file2
[[email protected] ~]# find /tmp/ -name ‘file*‘ -exec rm -rf {} + //等于rm -rf file1 file2

[[email protected] ~]# find /etc/ -iname ‘ifcfg-eth0‘|xargs ls //存在部分命令不接受管道传递的信息,需要则使用xargs参数
[[email protected] ~]# find /etc/ -iname ‘ifcfg-eth0‘|xargs -I {} cp {} /tmp

以上是关于Linux操作系统文件查找的主要内容,如果未能解决你的问题,请参考以下文章

linux下查找哪个文件中有要找的关键字?

Linux系统文件查找

linux下的文件查找操作

06_Linux目录文件操作命令3查找命令_我的Linux之路

Linux系统中文件定位与查找

linux文件查找及操作