Liunx基础命令 - find命令

这篇具有很好参考价值的文章主要介绍了Liunx基础命令 - find命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

find命令 – 根据路径和条件搜索指定文件

find命令的功能是用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能,是Linux系统运维人员日常工作必须掌握的命令之一。

find命令通常进行的是从根目录(/)开始的全盘搜索,有别于whereis、which、locate……等的有条件或部分文件的搜索。对于服务器负载较高的情况,建议不要在高峰时期使用find命令的模糊搜索,会相对消耗较多的系统资源。

语法格式:find [路径] [条件] 文件名

常用参数

-name 匹配文件名
-perm 匹配文件权限
-user 匹配文件所属主
-group 匹配文件所属组
-mtime 匹配最后修改文件内容时间
-atime 匹配最后读取文件内容时间
-ctime 匹配最后修改文件属性时间
-nouser 匹配无所属主的文件
-nogroup 匹配无所属组的文件
-newer 匹配比指定文件更新的文件
-type 匹配文件类型
-size 匹配文件大小
-prune 不搜索指定目录
-exec …… {}; 进一步处理搜索结果

操作示例

find全局搜索文件,Liunx自学笔记,linux,服务器,运维

find -name a命令的意思是在当前目录及其子目录中查找文件名为a的文件,并将它们输出。其中,-name参数指定查找的文件名,可以使用通配符匹配多个文件。

find -name 'a*'命令的意思是在当前目录及其子目录中查找文件名以字母’a’开头的文件,并将它们输出。其中,-name参数指定查找的文件名,通配符*表示匹配0个或多个字符。

find -name 'a*'命令为什么要在a*上加引号???

Linux命令行中的通配符(wildcard)可以用来匹配文件名或目录名,以便更方便地搜索和操作文件。其中,*表示匹配任意多个字符,包括0个字符。而在Linux命令中,命令参数如果带有空格或特殊字符等,会被解释器当作多个参数处理,因此需要使用引号将其整体引起来,避免解释器解释错误。

因此,在find -name 'a*'命令中,'a*'被引号括起来,是为了防止解释器将其拆分成多个参数。这样在搜索文件时可以正确地匹配所有文件名以字母a开头的文件,且保证命令解析正确。

find全局搜索文件,Liunx自学笔记,linux,服务器,运维

? 匹配任意一个字符

find全局搜索文件,Liunx自学笔记,linux,服务器,运维

[]匹配任意一个中括号内的字符

在Linux find命令中,星号(*)、问号(?)和中括号([])都是通配符,用于匹配文件名。

  • 星号(*):匹配任意数量的字符。例如,*.txt可以匹配所有以.txt结尾的文件。
  • 问号(?):匹配单个字符。例如,a?b可以匹配所有的3个字符长的字符串,第一个和第三个字符为ab,而中间的字符可以是任何单一的字符。
  • 中括号([]):用于指定字符集合,匹配方括号内列出的任意一个字符。例如,[abc]可以匹配abc中的任意一个字符;[0-9]则可以匹配任意一个数字字符。

它们的主要区别在于匹配的范围和粒度不同:

  • 星号(*)匹配的是任意数量的字符,包括0个或多个,是最广泛的匹配方式;
  • 问号(?)则只匹配一个字符,是比较精确的匹配方式;
  • 中括号([])用于指定字符集合,在给定的字符中进行匹配,是介于两者之间的匹配方式。

因此,在使用find命令时,需要根据实际情况选择合适的通配符来进行文件名匹配。可以根据需要组合使用这些通配符来实现更精确的匹配。

按时间查询

find全局搜索文件,Liunx自学笔记,linux,服务器,运维

在Linux find命令中,可以使用-mtime选项以修改时间为条件查询文件。其中,-mtime +n表示查找修改时间在n天之前的文件,-mtime n表示查找修改时间恰好为n天前的文件,-mtime -n表示查找修改时间在n天之内的文件(包括当天)。

因此,具体到本题中,+2表示修改时间在2天之前的文件,即查找至少2天前修改过的文件;2表示修改时间恰好为2天前的文件;-2表示修改时间在2天内的文件,即查找最近2天内修改过的文件。

find全局搜索文件,Liunx自学笔记,linux,服务器,运维

在Linux find命令中,除了可以使用-mtime选项以修改时间为条件查询文件外,还可以使用-atime-ctime选项以访问时间和状态更改时间为条件查询文件。

其中,-atime n表示查找最近n天内被访问过的文件,-ctime n表示查找最近n天内状态更改过的文件。这些选项也可以通过添加+-来表示时间范围。

按大小查询

find全局搜索文件,Liunx自学笔记,linux,服务器,运维

find -size 2k表示在当前目录下查找大小为2KB的文件,并将这些文件列出来。在find命令中,-size选项用于按照文件大小进行查询,2k指定要查找的文件大小为2KB。

需要注意的是,在文件大小计量单位中,k表示千字节(KB)的意思,因此2k就表示2KB。此外,还可以使用其他后缀来表示不同的计量单位,如c表示字节数,M表示兆字节(MB),G表示千兆字节(GB)等。

这个查询出来的不太精确

复合查询

find全局搜索文件,Liunx自学笔记,linux,服务器,运维

复合查询指在 find 命令中可以同时使用多个选项对文件进行多条件查询的方式。常见的复合查询包括按文件名、大小、类型、时间等条件组合进行查找。

在复合查询的命令中就会出现并且,或者,除非的关系

find 命令中,我们可以使用 -a 选项表示“并且”,使用 -o 选项表示“或者”,使用 ! 表示“除非”。

find /etc -size +20k -a -size -50k 其作用是在 /etc 目录下查找文件大小大于 20KB 且小于 50KB 的文件。

具体解释如下:

  • find:表示查找命令。
  • /etc:查找的目录是 /etc,即从 /etc 目录开始往下查找符合条件的文件。
  • -size +20k:指定文件大小大于 20KB,其中 + 表示大于,20k 表示 20KB,这里的大小指的是文件占用的磁盘空间。
  • -a:表示多个查询条件通过逻辑“与”连接,即查询的文件必须同时满足两个条件,即大小大于 20KB 和小于 50KB。
  • -size -50k:指定文件大小小于 50KB,其中 - 表示小于,50k 表示 50KB,这里的大小指的是文件占用的磁盘空间。

find与grep的区别

findgrep 是常用的 Linux 命令,它们有一些相似之处,但也有一些本质的不同。文章来源地址https://www.toymoban.com/news/detail-742473.html

  • find 命令用于在指定目录中查找符合条件的文件,并可以执行相关的操作。可以使用多个查询条件对结果进行筛选,并且可以递归搜索子目录,支持使用逻辑运算符组合查询条件。例如,我们可以使用 find /path/to/search -name "*.txt" 命令查找 /path/to/search 目录下所有后缀名为 .txt 的文件。find 命令的返回结果是文件路径列表,不会显示文件内容。
  • grep 命令用于在指定文本文件中查找匹配的字符串,或者从标准输入流(即终端输入)读取数据并查找匹配的字符串。可以使用正则表达式进行匹配,并会输出匹配到的行。例如,我们可以使用 grep "hello" file.txt 命令在 file.txt 文件中查找包含 hello 字符串的行,并输出这些行。grep 命令的返回结果是包含匹配的文件行,不会显示其他非匹配的信息。
    综上所述,findgrep 命令的主要区别在于,find 主要用于查找文件,grep 主要用于查找文本内容。find 用于文件路径的搜索,返回文件路径列表,而 grep 用于文本内容匹配,返回包含匹配的文件行。

到了这里,关于Liunx基础命令 - find命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Linux[find命令]-根据路径和条件搜索指定文件并删除

    find命令:用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能。 基本语法格式:find pathname -options 搜索内容 [其他选项] pathname:用来指定搜索路径。 options:用来指定搜索内容。 搜索内容:用来指定搜索

    2024年02月05日
    浏览(61)
  • Linux如何使用find命令搜索到自己想要的文件呢?

    文件搜素专栏全部文章 如何使用find命令搜索到自己想要的文件 ack 命令的基本用法详解 ag命令的使用详解 在 Linux 中查找文件名包含某个的文件,可以使用  find  命令来实现。 find  命令可以在指定目录下递归搜索文件,并根据指定的条件进行过滤。 下面是使用  fi

    2024年02月03日
    浏览(62)
  • Liunx基础命令 - which命令

    ​ which命令的功能是用于查找命令文件,能够快速搜索二进制程序所对应的位置。如果我们既不关心同名文件(find与locate),也不关心命令所对应的源代码和帮助文件(whereis),仅仅是想找到命令本身所在的路径,那么这个which命令就太合适了。 语法格式 :which [参数] 文件

    2024年02月05日
    浏览(46)
  • linux find命令搜索日志内容

    linux find命令搜索日志内容 加上-a 是为了不报查出 binary 的错 服务器会返回 包含所查字符的整行日志信息

    2024年02月07日
    浏览(48)
  • liunx 常用命令1-目录/文件:新建、修改、移动和删除

        创建         mkdir newdir         #递归地创建多级目录         mkdir -p /path/to/newdir/subdir            更改权限         chmod 755 /path/to/directory          更改所有者和组         ##将“/home/user/documents”目录的所有者更改为“newowner”,组更改为“newgroup”   

    2024年02月01日
    浏览(47)
  • Linux find 文件目录搜索工具

    目录 前言 基本用法 查找文件通配符匹配 查找文件并打印到标准输出 查找文件并删除 根据文件大小查找 根据文件修改时间查找 查找空文件或目录 查找文件类型 find 是一个在Linux系统中非常强大和灵活的文件搜索工具。它用于在文件系统中查找文件和目录,并可以执行各种

    2024年02月08日
    浏览(73)
  • 【Linux进阶命令 01】grep(文本的全局搜索与打印)

    grep (缩写来自Globally search a Regular Expression and Print,即 正则表达式的全局搜索和打印输出 )是一种强大的文本搜索工具,它能使用特定模式匹配(包括正则表达式)搜索文本,并默认输出匹配行。Unix的grep家族包括grep、egrep和fgrep。 基本用法: 全部用法: -c :只输出匹配模

    2024年02月05日
    浏览(89)
  • Linux命令模糊查询文件或文件夹(包含find命令拓展)

    1、 find 命令 ​path(表示文件或文件夹的绝对路径 ​) -type f (表示查的是文件,-type d 表示查的是文件夹 ​) -name “cron*” (表示查cron开头的所有文件或文件夹) 2、 拓展 :

    2024年02月11日
    浏览(84)
  • 12 - Linux CentOS 7 文件和目录搜索(which、whereis、locate、find)

    ★ 功能:依据$PATH 环境变量中的目录路径,查找命令文件的文件路径。 ★ 举例: ★ 功能1:依据 P A T H 环境变量中的目录路径,查找命令文件的文件路径。★功能 2 :依据 PATH 环境变量中的目录路径,查找命令文件的文件路径。 ★ 功能2:依据 P A T H 环境变量中的目录路径

    2024年02月20日
    浏览(52)
  • Linux下使用find命令查找文件

    0、find 命令,查找目录下以2022开头的文件 1、find 命令,查找类型为文件并且文件名称以2022开头的文件 2、find命令统计查找出来的文件总数量 3、进阶用法,编写sh脚本使用sh ./test.sh 命令运行,或者粘贴至窗口直接运行。 4、如果创建test.sh脚本后可能无法运行,提示如下错误

    2024年02月11日
    浏览(89)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包