++++++++++++++++++++++++++++++++++++++++++++++++
标题: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操作系统文件查找的更多相关文章

  1. Linux 操作系统文件略解

    1.使用tree命令查看根目录的树结构 # tree -L 1 如果没有tree命令,可以使用yum进行安装 # yum -y install tree 执行命令后,即可看到根下一共有19个目录 . ...

  2. Linux操作系统主机名(hostname)简介

    http://www.jb51.net/LINUXjishu/10938.html 摘要:本文是关于Linux操作系统主机名(hostname)的文档,对主要配置文件/etc/hosts进行简要的说明 ...

  3. linux 两个查找工具 locate,find详解

    linux 中有很多查找工具,今天主要讲解locate,find两个工具. 1.locate (1)查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 注意:如果这 ...

  4. awk、grep、sed是linux操作文本的三大利器,也是必须掌握的linux命令之一

    awk.grep.sed是linux操作文本的三大利器,也是必须掌握的linux命令之一.三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂.grep更适合单纯的查找或匹配文 ...

  5. Tutorial 01_熟悉常用的Linux操作和Hadoop操作

    (一)熟悉常用的Linux 操作cd 命令:切换目录 (1) 切换到目录“/usr/local” (2) 切换到当前目录的上一级目录 (3) 切换到当前登录Linux 系统的用户的自己的主文件夹  ...

  6. linux 两个查找工具 locate,find

    linux 中有很多查找工具,今天主要讲解locate,find两个工具. 一.locate 1.性能介绍 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 注意 ...

  7. 安装Linux系统,学习Linux操作基础

    20189230杨静怡 2018-2019-2 <移动平台开发实践>第1周学习总结 安装Linux系统内容总结 一.学习"基于VirtualBox虚拟机安装Ubuntu图文教程& ...

  8. Linux vi中查找字符内容的方法

      使用vi编辑器编辑长文件时,常常是头昏眼花,也找不到需要更改的内容. 这时,使用查找功能尤为重要. 方法如下: 1.命令模式下输入“/字符串”,例如“/Section 3”. 2.如果查找下一个, ...

  9. linux find 命令查找文件和文件夹

    查找目录:find /(查找范围) -name '查找关键字' -type d查找文件:find /(查找范围) -name 查找关键字 -print 详解: find命令用来在指定目录下查找文件.任 ...

随机推荐

  1. JVM 学习(二)Java 内存模型、方法内联、逃逸 --- 2019年4月

    1.Java 的内存模型 定义了 happens-before,如果同一个线程中,字节码的先后顺序,后者观测了前者的运行结果,那么就会按顺序执行. Java 线程之间的通信由 Java 内存模型控制. ...

  2. MySQL命令窗口下中文显示乱码的解决过程

    在dos客户端输出窗口中查询表中的数据,还有项目部署到服务器上时前台的页面,中文数据都显示成乱码,如下图所示: 这个问题困扰了我一天,后来解决了才发现原来我的方向错了,一直我以为是SpringBoot ...

  3. Docker & ASP.NET Core (3):发布镜像

    第一篇:把代码连接到容器 第二篇:定制Docker镜像 上一篇文章最后有个问题,定制的镜像无法正常运行: 这可能是由于无法找到要运行的dll引起的问题. 之前的Dockerfile的文档我是按照微软的 ...

  4. 【常见错误】--Nltk使用错误

    一.错误类型 AttributeError: module 'nltk' has no attribute 'word_tokenize' 二.情形及解决办法 安装了nltk后,无法使用,报错如上,错 ...

  5. AppUtils【获取手机的信息和应用版本号、安装apk】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 一个获取设备的系统版本号.设备的型号.应用版本号code值.应用版本号name值.包名.是否更新.安装apk的工具类. 其实这个工具 ...

  6. 原生js 遍历文件夹分析xml并保存

    其实这种功能,网上相关的代码多的是,我也是因为今天正好要用到这个功能,所以临时写了下,放这里保存下,以便将来自己或者别人用的上吧. 当然我写的是一个hta文件.下面是完整js代码,都是调用active ...

  7. [Linux] 一个前端必会的 Nginx 免费教程-在虚拟机中用deepin测试

    原文技术胖的 nginx 技术胖 专注于前端开发 deepin Linux Deepin 是一个基于 DEB 包管理的一个独立操作系统,和那些 Ubuntu(下个大版本是基于 debian 开发) 的 ...

  8. Python 为什么要使用描述符?

    学习 Python 这么久了,说起 Python 的优雅之处,能让我脱口而出的, Descriptor(描述符)特性可以排得上号. 描述符 是Python 语言独有的特性,它不仅在应用层使用,在语言的 ...

  9. Spring入门(三):通过JavaConfig装配bean

    上一篇博客中,我们讲解了使用组件扫描和自动装配实现自动化装配bean,这也是最好的使用方式. 但是某些场景下,我们可能无法使用自动装配的功能,此时就不得不显式的配置bean. 比如我们引用了一个第三方 ...

  10. nginx系列12:一致性哈希算法

    前面一节的hash算法存在一个问题,当上游的应用服务器因某一台down掉导致服务器数量发生变化时,会导致大量的请求路由策略失效,一致性哈希算法可以缓解这个问题. 一致性哈希算法 1,hash算法存在的 ...