Linux操作系统文件查找
++++++++++++++++++++++++++++++++++++++++++++++++
标题:Linux操作系统的文件或命令查找
内容:命令查找(which和whereis)、文件查找(locate和find)
时间:2019年4月15日
++++++++++++++++++++++++++++++++++++++++++++++++
1. 系统命令文件查找
[root@test ~]# which yum //会遍历环境变量的是否存在
/usr/bin/yum
[root@test ~]# whereis yum //遍历环境变量、遍历man手册
yum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8.gz
2. 常规文件查找
2.1 locate常规文件查找
[root@test ~]# mkdir /dir100
[root@test ~]# touch /dir100/file001
[root@test ~]# locate /dir100/ file001 //数据库未更新
[root@test ~]# updatedb //手动更新数据库
[root@test ~]# locate /dir100/ file001
/dir100/file001
[root@test ~]# rm -rf /dir100/file001
[root@test ~]# locate /dir100/ file001 //删除文件后数据库未更新
/dir100/file001
[root@test ~]# updatedb
[root@test ~]# locate /dir100/ file001
locate知识点总结:
locate是通过数据库进行比对查找,查找速度非常快,但结果不一定准确。
locate配置的数据库位置"/var/lib/mlocate/mlocate.db"。
locate查询系统固定的文件效率会很高。
locate使用的数据库系统每日会自动更新一次。
使用updatedb命令手工更新数据库可能造成大量的IO操作,增加系统负担。
2.2 find常规文件查找
语法结构:find [options] [path] [expression]
++文件名称查找++
[root@test ~]# find /etc/ -name 'ifcfg-eth0'
[root@test ~]# find /etc/ -iname 'ifcfG-eth0' //忽略文件名称大小写
[root@test ~]# find /etc/ -name '*eth0*'
++文件属主属组以及类型查找++
[root@test ~]# find / -user mysql -name 'file*'
[root@test ~]# find / -group mysql -type d -iname 'MYSQL'
[root@test ~]# find / -type p |head -n 1
++文件大小查找++
[root@test ~]# find /etc/ -size 5M
[root@test ~]# find /etc/ -size +5M
[root@test ~]# find /etc/ -size -5M
++文件时间查找++
[root@test ~]# find /dir100/ -atime -1 //访问时间--realtime
[root@test ~]# find /dir100/ -mtime 1 //内容修改时间
[root@test ~]# find /dir100/ -ctime +1 //属性修改时间
++按文件所在深度++
[root@test ~]# find /etc/ -maxdepth 4 -iname 'ifcfg-eth0'
[root@test ~]# find /etc/ -mindepth 5 -iname 'ifcfg-eth0' //什么都没有
++按权限查找++
[root@test ~]# find /dir100/ -perm 222 //权限等于
[root@test ~]# find /dir100/ -perm -0111 //权限包含
++其他高级用法++
[root@test ~]# time find / -iname "ifcfg-eth0" //效率较低
[root@test ~]# time find 'ls /' -iname "ifcfg-eth0" //效率较高
[root@test ~]# find /etc/ -regex '.*ifcfg-eth[0-9]' //使用正则表达式匹配
[root@test ~]# find /home/ -nogroup -o -nouser //无主对象
[root@test ~]# find /home/ \( -nogroup -o -nouser \) -delete //删除无主对象
[root@test ~]# find /etc/ \( -size +5M -a -size -10M \) -print
[root@test ~]# find /etc/ -iname 'ifcfg-eth0' -ls //长格式显示,类似于ls -l,但不同于ls -l
[root@test ~]# find /dir100/ -iname 'file*' -exec cp {} /tmp \; //强制覆盖
[root@test ~]# find /dir100/ -iname 'file*' -ok cp {} /tmp \; //覆盖提示
[root@test ~]# find /tmp/ -name 'file*' -exec rm -rf {} \; //等于rm -rf file1;rm -rf file2
[root@test ~]# find /tmp/ -name 'file*' -exec rm -rf {} \+ //等于rm -rf file1 file2
[root@test ~]# find /etc/ -iname 'ifcfg-eth0'|xargs ls //存在部分命令不接受管道传递的信息,需要则使用xargs参数
[root@test ~]# find /etc/ -iname 'ifcfg-eth0'|xargs -I {} cp {} /tmp
Linux操作系统文件查找的更多相关文章
- Linux 操作系统文件略解
1.使用tree命令查看根目录的树结构 # tree -L 1 如果没有tree命令,可以使用yum进行安装 # yum -y install tree 执行命令后,即可看到根下一共有19个目录 . ...
- Linux操作系统主机名(hostname)简介
http://www.jb51.net/LINUXjishu/10938.html 摘要:本文是关于Linux操作系统主机名(hostname)的文档,对主要配置文件/etc/hosts进行简要的说明 ...
- linux 两个查找工具 locate,find详解
linux 中有很多查找工具,今天主要讲解locate,find两个工具. 1.locate (1)查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 注意:如果这 ...
- awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一
awk.grep.sed是linux操作文本的三大利器,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文 ...
- Tutorial 01_熟悉常用的Linux操作和Hadoop操作
(一)熟悉常用的Linux 操作cd 命令:切换目录 (1) 切换到目录“/usr/local” (2) 切换到当前目录的上一级目录 (3) 切换到当前登录Linux 系统的用户的自己的主文件夹 ...
- linux 两个查找工具 locate,find
linux 中有很多查找工具,今天主要讲解locate,find两个工具. 一.locate 1.性能介绍 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 注意 ...
- 安装Linux系统,学习Linux操作基础
20189230杨静怡 2018-2019-2 <移动平台开发实践>第1周学习总结 安装Linux系统内容总结 一.学习"基于VirtualBox虚拟机安装Ubuntu图文教程& ...
- Linux vi中查找字符内容的方法
使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容. 这时,使用查找功能尤为重要. 方法如下: 1.命令模式下输入“/字符串”,例如“/Section 3”. 2.如果查找下一个, ...
- linux find 命令查找文件和文件夹
查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) -name 查找关键字 -print 详解: find命令用来在指定目录下查找文件.任 ...
随机推荐
- 使用ASP.NET Core开发GraphQL服务器 -- 预备知识(下)
上一篇文章:https://www.cnblogs.com/cgzl/p/9734083.html 处理数据 嵌套字段 看例子: 我想查看viewer下的repositories.注意里面的edges ...
- Self Host 使用 Exceptionless 实时监控程序运行日志服务
Exceptionless 是一个可以对 ASP.NET Core, ASP.NET MVC,WebAPI, WebForms, WPF, Console 应用提供系统的日志,错误监控.报表等服务实时 ...
- Locust性能测试学习总结
Locust学习总结分享 简介: Locust是一个用于可扩展的,分布式的,性能测试的,开源的,用Python编写框架/工具,它非常容易使用,也非常好学.它的主要思想就是模拟一群用户将访问你的网站.每 ...
- C++ 编译期封装-Pimpl技术
Pimpl技术——编译期封装 Pimpl 意思为“具体实现的指针”(Pointer to Implementation), 它通过一个私有的成员指针,将指针所指向的类的内部实现数据进行隐藏, 是隐藏实 ...
- 操作Work、Excel、PDF
操作Work.Excel.PDF 1.NPOI插件 namespace XBLRDiff.BLL.Excel { public class ExcelImport:IDisposable ...
- App.config自定义节点读取
<?xml version="1.0" encoding="utf-8"?> <configuration> <!--<ot ...
- Java笔记(day1~day6)
绪论: Java版本区别:J2EE (企业版) J2SE(标准版) J2ME(小型版) Java特性:跨平台 JVM.JRE.JDK介绍 ...
- java开发注解总结笔记
目录 1.最基础注解(spring-context包下的org.springframework.stereotype) 1.1.@Controller @Service @Repository @Co ...
- Puppeteer学习之小试牛刀
最近有了写文章的动力了,一方面是受到了很多前辈们的启示,另一方面也是为了记录下来更好地学以致用.闲言少叙,先说说Puppeteer是什么. Puppeteer是一个node库,提供了一些用来操作Chr ...
- MyDAL - .UpdateAsync() 使用
索引: 目录索引 一.API 列表 1.UpdateAsync() 用于 单表 更新操作 二.API 单表-便捷 方法 举例-01 var pk1 = Guid.Parse("8f2cbb6 ...