12 - Linux CentOS 7 文件和目录搜索(which、whereis、locate、find)

这篇具有很好参考价值的文章主要介绍了12 - Linux CentOS 7 文件和目录搜索(which、whereis、locate、find)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、which 命令(简单方便)

★ 功能:依据$PATH 环境变量中的目录路径,查找命令文件的文件路径。
★ 举例:
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维

二、whereis 命令

★ 功能1:依据 P A T H 环境变量中的目录路径,查找命令文件的文件路径。★功能 2 :依据 PATH 环境变量中的目录路径,查找命令文件的文件路径。 ★ 功能2:依据 PATH环境变量中的目录路径,查找命令文件的文件路径。功能2:依据MANPATH 环境变量中的目录路径,查找命令文件的man帮助文件路径。
★ 举例:
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维

三、locate 命令(不常用)

★ 功能:依据mlocate.db 数据库,查找匹配指定关键字的所有目录和文件路径

## 需要事先构建/var/lib/mlocate/mlocate.db 数据库,mlocate.db数据库中,不会包含/tmp 目录内容
## 构建:mlocate.db 数据库
yum install mlocate -y     ## 安装:locate 命令工具
updatedb                   ## 更新:mlocate.db 数据库

★ 举例:查找包含着shadow字符串的所有目录和文件路径

locate shadow

centos搜索文件路径,02_Linux 系统管理,linux,centos,运维

四、find 命令(强大的搜索命令)

★ 理解:find命令的命令结构
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维
★ 语法:find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path…] [expression]

      ## 备注:
      ##  [-P] [-L] [-H] 选项:针对<搜索范围>中的<符号链接>,设定是否<追溯搜索>
      ##   ♦ 如果同时指定了 [-P] [-L] [-H] 选项(即:1个以上),则:从右向左,依次替代,最后一个生效。
      ##   ♦ [-P]  针对<搜索范围>中的<符号链接>,拒绝<链接追随>,这是<默认行为>。
      ##           举例:find -P /bin -iname 'cat'  ## <搜索范围>指定的是</bin符号链接文件>,-P 会拒绝<链接追随>
      ##   ♦ [-L]  针对<搜索范围>中的<符号链接>,允许<链接追随>。
      ##           举例:find -L /bin -iname 'cat'  ## <搜索范围>指定的是</bin符号链接文件>,-L 会允许<链接追随>
      ##   ♦ [-H]  针对<搜索范围>中的<符号链接>,拒绝<链接追随>(除非:<搜索范围>直接指定为一个<符号链接>)。
      ##           举例:find -H /bin -iname 'cat'  ## <搜索范围>直接指定为</bin符号链接文件>,-H 会允许<链接追随>

★ 指定:find 搜索范围:

直接指定:[选项] <目录路径1> <目录路径2> ...
举例:find /dir01 /dir02 /dir03 ...

★ 设定:find 搜索条件:

##
## 常见条件类型如下:
##  ♦ N  代表:<选项值>,它可以是:+N(大于) 或 -N(小于) 或 N(等于)
##

centos搜索文件路径,02_Linux 系统管理,linux,centos,运维
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维
★ 设定:多条件组合
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维
★ 设定:find 处理动作

##
## 常见动作如下:
##
-print   ## 显示:<匹配对象>的<名称、绝对/相对路径>,这是一个默认动作,可以省略,用于:标准输出find匹配对象
-ls      ## 列出:<匹配对象>的<详细信息>,<-ls动作>等价于<ls -dlis命令>
-delete  ## 删除:<匹配对象>
-prune   ## 设置:如果<匹配对象>是<目录>,则不要进入该<目录>
-exec    ## 定义:针对find匹配对象,执行一个指定COMMAND命令。
         ##       我们可以通过一个或多个 -exec 动作选项,来执行一个或多个指定COMMAND命令。
         ## 命令形式:command '{}' \; 每匹配一个对象,'{}'就覆盖式置换一个对象,然后执行一次动作。
         ##                            ♦ 在 '{}' \; 组合中,依据command命令意图,必须有且可有1个或多个'{}'。
         ##                            ♦ \; 表示:该 -exec动作结束
         ##                            ♦ \  是转义符,用于表示:该<;分号>不是<SHELL命令行>的<;分号分隔符>。
         ##                            ♦ 注意:※ 针对大批量的find匹配对象,执行效率低下。
         ##            command '{}' + 每匹配一个对象,'{}'就追加式置换一个对象,然后执行一次动作。
         ##                            ♦ 在 '{}' + 组合中,依据command命令意图,必须有且仅有1个'{}'。
         ##                            ♦ 在 '{}' + 组合中,+ 表示:可以在'{}'中,自动追加多个find匹配对象。
         ##                            ♦ <+加号>的作用与<xargs命令>相同。
         ##                            ♦ 注意:
         ##                                ※ 追加多个find匹配对象,会大大减少动作次数。
         ##                                ※ 针对大批量find匹配对象,会提高执行效率。
         ##                                ※ 可追加的<find匹配对象总数>将受限于command命令自身的语法限制。
         ##            注意: '{}' 和 \; 和 + 彼此之间需要有【空格】

★ 案例学习1:查看根目录下所有的 TXT 格式的文件
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维
★ 案例学习2:把查找到的文件复制到一个指定的目录
centos搜索文件路径,02_Linux 系统管理,linux,centos,运维
★ 案例学习3:把查找到的TXT文件,全部予以tar归档

● 重点理解:-exec动作的 '{}' \;'{}' + 两种不同处理机制,从而了解如何提高find动作的处理效率。
touch /tmp/{1..10000}.txt
##
## 方法1:
##      特点:慢(每1次动作,仅处理1个find匹配对象)
##      注意:tar采用的是-c覆盖打包选项,因此,最终仅打包了最后一个文件
##
find /tmp -name '*.txt' -exec tar -acf a.tar.gz '{}' \;
##
## 方法2:
##      特点:快(每1次动作,可处理多个find匹配对象)
##      注意:tar采用的是-c覆盖打包选项,由于tar命令行可追加的打包对象参数有限,因此,最终仅打包了最后的一组文件
##
find /tmp -name '*.txt' -exec tar -acf b.tar.gz '{}' +
##
## 方法3:
##      特点:快(每1次动作,可处理多个find匹配对象)
##      注意:tar采用的是-r追加打包选项,即便tar命令行可追加的打包对象参数有限,也可最终打包所有的文件
##
find /tmp -name '*.txt' -exec tar -arf c.tar.gz '{}' +
##
## 方法4:
##      特点:快(将全部的find匹配对象,通过 | 管道符,一次性交给tar命令去处理)
##      注意:tar采用的是-c覆盖打包选项,由于tar命令行可追加的打包对象参数有限,因此,最终仅打包了最后的一组文件
##
find /tmp -name '*.txt' | xargs tar -acf d.tar.gz
##
## 方法5:
##      特点:快(将全部的find匹配对象,通过 | 管道符,一次性交给tar命令去处理)
##      注意:tar采用的是-r追加打包选项,即便tar命令行可追加的打包对象参数有限,也可最终打包所有的文件
##
find /tmp -name '*.txt' | xargs tar -arf e.tar.gz

★ 课后作业

1.现在我要执行ss命令,我想知道这个ss命令文件的真实绝对路径。请问:该如何做?
2.我记得有一个文件的文件名好像是ifcfg开头,好像在/etc目录中,我该如何找出所有类似的文件?文章来源地址https://www.toymoban.com/news/detail-831164.html

到了这里,关于12 - Linux CentOS 7 文件和目录搜索(which、whereis、locate、find)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【linux】搜索所有目录和子目录下的包含.git的文件并删除

    在Linux系统中,要搜索所有目录和子目录下的包含`.git`的文件,可以使用`find`命令。`find`命令允许指定路径、表达式和操作来查找文件。 以下是使用`find`命令搜索包含`.git`的文件的方法: 1. 基本搜索:    find /path/to/search -type f -name \\\"*.git*\\\"    这将在指定的路径下搜索所有扩

    2024年03月22日
    浏览(82)
  • Linux-centos使用mv移动文件到指定目录

    格式: 主要参数 -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖,此时系统询问是否重写,要求用户回答”y”或”n”,这样可以避免误覆盖文件。 -f:禁止交互操作。mv操作要覆盖某个已有的目标文件时不给任何指示,指定此参数后i参数将不再起作用。

    2024年02月11日
    浏览(55)
  • Linux命令之whereis命令详解

    查找二进制程序、代码等相关文件路径 更多linux命令:linux命令在线查找工具 whereis命令 用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。 whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数

    2024年02月03日
    浏览(42)
  • 12. python从入门到精通——文件及目录操作

    目录 基本文件操作 创建和打开文件:open()函数 关闭文件:可以不关闭文件因为有垃圾回收功能 打开文件时使用with语句:不需要自己关闭文件,可以自己关闭 写入文件内容 file.write方法 file.writelines方法:可以向文件中写入字符串列表,但没有换行符和分隔符 读取文件有三种情况

    2024年02月09日
    浏览(53)
  • Linux centos7查看目录下子目录的方法

    (所述方法是在当前目录下,如在其他目录,要注意查找目录的表达) 在目录中,一般存放着普通文件及目录文件。 可用ls查看目录下的所有文件 如果我们仅仅希望查询目录下的子目录文件,不需要出现普通文件,如何操作呢? 下面提供6种方法,供参考。 1.ls -d  */ 我们知

    2024年02月10日
    浏览(49)
  • 在 centOS 上设置目录文件权限

    对于对外开放的网站和系统,文件权限控制是一个很重要的事情,对于文件和文件夹权限原则是最小权限够用就行,不相关的文件只需要只读权限即可。目录权限设置很重要:可以有效防范黑客上传木马文件。 chmod -R 644 upload ,php文件就没有权限访问了。 chmod -R 755 upload ,

    2024年02月11日
    浏览(51)
  • CentOS-Linux目录操作命令详解

    目录 目录操作常用命令 一、ls命令 二、pwd命令  三、cd命令 四、mkdir命令 五、rmdir命令 目录操作命令是linux系统中最常用的命令之一,常见的有ls、cd、mkdir、pwd、rmdir等!本教程以CentOS 7系统环境为例,并结合应用场景为大家清晰明了的介绍目录操作命令的使用方法和实际用

    2024年02月04日
    浏览(56)
  • 【Linux常用命令12】搜索命令及特殊字符的使用

    命令 文件:将标准输出重定向到一个文件中(清空原有文件的数据) 命令 2 文件:将错误输出重定向到一个文件中(清空原有文件的数据) 命令 文件:将标准输出重定向到一个文件中(追加到原有内容的后面) 命令 2 文件:将错误输出重定向到一个文件中(追加到原有内

    2024年02月07日
    浏览(53)
  • linux 给根目录扩容(lvm CentOS 7.6 )

    问题:Linux系统挂载到根目录的磁盘空间满了,如何扩容?  用命令:lsblk 可以查看磁盘和分区情况,可以发现磁盘vda下面的还有大部分空间没有使用。 1、使用 fdisk -l 查看硬盘序号,并用 fdisk 对硬盘操作,格式化成lvm的格式 (用命令lsblk可以看到,挂载到根目录的分区是lv

    2024年02月08日
    浏览(66)
  • 使用bat命令搜索当前目录下与指定内容相匹配的文件的方法

    使用 bat 命令搜索当前目录下与指定内容相匹配的文件,可以使用以下方法: 在命令行中输入 bat 命令,后面跟上搜索内容和文件名模式。例如: 这样可以在当前目录下搜索所有以 .txt 为扩展名的文件,并在匹配到的行中显示搜索内容。 如果需要搜索子目录中的文件,可以使

    2024年02月07日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包