前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >查找 Linux 文件:查找命令使用完整指南

查找 Linux 文件:查找命令使用完整指南

作者头像
用户1418987
发布2023-12-12 09:57:57
7570
发布2023-12-12 09:57:57
举报
文章被收录于专栏:codercoder

在命令行中按名称、部分名称或日期查找文件的最简单方法

如果要在 Linux 系统上查找文件,find 命令可以轻松实现。您可以使用“查找”按名称、部分名称、日期、修改时间、大小等搜索文件。如果您知道文件位于哪个目录中,则可以在 find 命令中指定该目录。如果没有,您可以从根 (/) 目录开始搜索整个 Linux 系统。这篇wikiHow文章将教你如何在Linux中使用find命令来查找任何文件,从你下载的文件到配置文件

你应该知道的事情

  • find 的基本语法是 find <起始目录> <options> <search terms>
  • 如果您不知道文件的确切名称,则可以使用星号作为通配符。
  • 使用 find 时,使用 -iname 选项可忽略区分大小写。

使用“查找:基础知识”

查找 Linux 文件:查找命令使用完整指南_大小写
查找 Linux 文件:查找命令使用完整指南_大小写

您通常会将 find 命令与语法一起使用。find /path -type f -iname filename您可以使用此命令的变体来查找 Linux 计算机上的任何文件或目录。我们将命令分解为简单的部分。

查找 Linux 文件:查找命令使用完整指南_大小写_02
查找 Linux 文件:查找命令使用完整指南_大小写_02

/path/to/file 是要在其中搜索文件的目录。例如,要搜索当前目录,请使用 . 作为路径。要搜索整个 Linux 文件系统,请使用 / 作为路径。

查找 Linux 文件:查找命令使用完整指南_查找文件_03
查找 Linux 文件:查找命令使用完整指南_查找文件_03

-type 表示要搜索的文件或目录的类型。您将在 -type 后面使用一个标志。在我们的示例中,我们使用 f 标志。搜索文件时,通常会使用以下三个标志中的任何一个:

  • 女:这意味着“常规文件”,它可以是文本文件、图像、程序、配置文件、可执行文件,以及基本上任何类型的文件(包括隐藏文件)。
  • 提示: -type ffind 命令的缺省值。这意味着,如果要查找文件(不是目录或符号链接),实际上可以将 -type f 排除在 file 命令之外。
  • d:搜索目录(文件夹)。
  • l:搜索指向其他文件的符号链接。
  • 您可以通过用逗号分隔字母来搜索多种类型。例如,要查找名为“etc”的所有文件、目录和符号链接,可以使用find / -type f,d,l -iname etc
查找 Linux 文件:查找命令使用完整指南_大小写_04
查找 Linux 文件:查找命令使用完整指南_大小写_04

-iname 告诉 find 忽略区分大小写。如果您不能 100% 确定文件的名称或大小写,这一点很重要。但是,如果希望 find 与键入的大小写特别匹配,请将 -iname 替换为区分大小写的 -name

查找 Linux 文件:查找命令使用完整指南_查找文件_05
查找 Linux 文件:查找命令使用完整指南_查找文件_05

filename 是您要查找的文件的名称。如果您知道文件的确切名称,您将完整键入它。如果没有,您可以在搜索词中的任何位置使用通配符。

  • 例如,若要查找计算机上的所有配置文件,可以使用 .这将返回以 .conf 结尾的文件的名称。find / -type f -iname "*.conf"
查找 Linux 文件:查找命令使用完整指南_查找文件_06
查找 Linux 文件:查找命令使用完整指南_查找文件_06

用于按确切名称搜索文件。find /path -iname filename如果您知道文件的确切名称和目录,则可以使用此命令来查找它。

查找 Linux 文件:查找命令使用完整指南_查找文件_07
查找 Linux 文件:查找命令使用完整指南_查找文件_07

使用通配符搜索与查询部分匹配的任何内容。*通配符可用于在不知道全名时查找文件。这可以帮助您查找具有特定文件扩展名(例如 .pl.c)的文件。一些有用的例子:*

  • find /home/pat -iname "*.conf"
  • 这将返回 Pat 的用户目录和子目录中的所有 .conf 文件。
  • find / -type d -iname "*lib*"
  • 此命令查找 Linux 文件系统上包含字符串“lib”的所有目录。
查找 Linux 文件:查找命令使用完整指南_大小写_08
查找 Linux 文件:查找命令使用完整指南_大小写_08

使用该命令使搜索结果更易于管理。less如果您得到很多结果,可能很难筛选它们。通过将结果通过管道传递到命令中,您可以轻松地滚动浏览它们。例如:less

  • find /home/pat -iname "*.conf" | less

按时间和日期查找

查找 Linux 文件:查找命令使用完整指南_查找文件_09
查找 Linux 文件:查找命令使用完整指南_查找文件_09

使用该选项按修改日期(以天为单位)查找文件。-mtime如果要查找上次修改日期前(或两天范围)的文件,请使用此选项。一些例子:

  • find /home/pat -iname "*.txt " -mtime -2
  • 此命令将查找过去两天修改的目录 /home/pat 中所有以 .txt 结尾的文件。
  • 在天数前放置 + 表示“长于 x 天前,或 - 表示少于 x 天前。[2] 例如:
  • find . -mtime +90 :此命令将显示当前目录中 90 天前修改过的所有文件
  • find /home/pat -iname "*test*" -mtime -90 :此命令将列出 /home/pat 中名称中包含“test”的所有文件,这些文件在过去 90 天内编辑过。
  • 如果要查找按分钟而不是天修改的文件,请改用。例如,要查找当前目录中最近 10 分钟内修改的所有文件,请使用 .-mminfind . -type f -mmin -10
查找 Linux 文件:查找命令使用完整指南_大小写_10
查找 Linux 文件:查找命令使用完整指南_大小写_10

使用 和 按上次访问日期或创建日期查找文件。-atime-ctime替换为 to search by the last date accessed (opened),或按文件创建日期(例如,15 天前或 90 天前)进行搜索。-mtime-atime-ctime

  • 如果您希望按分钟而不是按天进行搜索,请将 替换为 和 。-atime-amin-ctime-cmin
查找 Linux 文件:查找命令使用完整指南_查找文件_11
查找 Linux 文件:查找命令使用完整指南_查找文件_11

在两个时间戳之间查找文件。

若要在两个特定日期和时间之间搜索文件,请使用该选项。您需要在命令中使用此选项两次,一次用于搜索的开始日期,另一次用于结束日期。下面是它的外观:-newermt

  • find / -type f -newermt "2022-12-02 11:00:00" ! -newermt "2023-2-08 12:00:00"
  • 此命令将查找 Linux 系统上时间戳在 2022 年 2 月 12 日上午 11:00 至 2023 年 8 月 2 日中午 12 点之间的所有文件。

按尺寸查找

查找 Linux 文件:查找命令使用完整指南_大小写_12
查找 Linux 文件:查找命令使用完整指南_大小写_12

按大小筛选搜索结果。

如果您有很多名称相似的文件,但知道要查找的大小,则可以按大小筛选结果。

  • find / -size +50M -iname filename
  • 此示例将返回 50 MB 或更大的结果。
  • 您可以使用 或 搜索更大或更小的尺寸。+-
  • 省略 or 将搜索完全符合指定大小的文件。+-
  • 您可以按字节 ()、千字节 ()、兆字节 ()、千兆字节 () 或 512 字节块 () 进行筛选。ckMGb

按所有者或权限查找

查找 Linux 文件:查找命令使用完整指南_大小写_13
查找 Linux 文件:查找命令使用完整指南_大小写_13

使用 -user-group-perm 选项按所有者或权限查找文件。如果您尝试查找用户拥有的特定文件或具有特定权限的文件,则可以缩小搜索范围。

  • 例子:
  • find / -user pat -iname filename搜索用户 PAT 拥有的名为 filename 的文件。
  • find / -group users -iname filename在用户组中搜索名为 filename 的文件。
  • find / -perm 777 -iname filename搜索具有 777 权限(无限制)的名为 filename 的文件。

组合查找命令

查找 Linux 文件:查找命令使用完整指南_查找文件_14
查找 Linux 文件:查找命令使用完整指南_查找文件_14

使用布尔运算符组合搜索筛选器。可以使用 、 和运算符将不同类型的搜索合并为一个。例如:-and-or-not

  • find /travelphotos -type f -size +200k -not -iname "*2015*"
  • 该命令将在“travelphotos”目录中查找大小大于 200 kb 但文件名中没有任何“2015”的文件。

对找到的文件执行操作

组合命令以在找到文件时执行操作。可以与其他命令结合使用,以便可以对查询返回的文件执行这些命令。您还可以使用此功能来运行查找结果中显示的文件。用标志分隔命令和第二个命令,然后以 .例如:findfind-exec{} \;

  • find . -type f -perm 777 -exec chmod 755 {} \;
  • 这将在当前目录(和所有子目录)中搜索具有 777 个权限的文件。然后,它将使用该命令将权限更改为 755。chmod

在文件中搜索文本

查找 Linux 文件:查找命令使用完整指南_大小写_15
查找 Linux 文件:查找命令使用完整指南_大小写_15

使用该命令在文件中搜索文本字符串。

grep如果要查找包含特定短语或字符串的文件,可以使用该命令。下面是一个基本命令的示例:grepgrep

  • grep -r -i "search query" /path/to/directory/
  • 该标志将搜索设置为“递归”,因此它将在当前目录和所有子目录中搜索包含查询字符串的任何文件。-r
  • 该标志指示查询不区分大小写。如果要强制搜索注意大小写,请省略该标志。-i-i
查找 Linux 文件:查找命令使用完整指南_大小写_16
查找 Linux 文件:查找命令使用完整指南_大小写_16

剪掉多余的文字。如上所述执行搜索时,你将看到文件名以及突出显示匹配查询的文本。您可以隐藏匹配的文本,并通过包含以下内容来仅显示文件名和路径:grep

  • grep -r -i "search query" /path/to/directory/
查找 Linux 文件:查找命令使用完整指南_查找文件_17
查找 Linux 文件:查找命令使用完整指南_查找文件_17

隐藏错误消息。

当该命令尝试访问没有正确权限的文件夹或遇到空文件夹时,该命令将返回错误。您可以将错误消息发送到 /dev/null,这将在输出中隐藏它们。grep

  • grep -r -i "search query" /path/to/directory/ 2>/dev/null
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 你应该知道的事情
    • 使用“查找:基础知识”
      • 按时间和日期查找
        • 按尺寸查找
          • 按所有者或权限查找
            • 组合查找命令
              • 对找到的文件执行操作
                • 在文件中搜索文本
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档