如何在 Linux 中使用 Find 命令搜索文件如何在 Linux 中使用 Find 命令搜索文件如何在 Linux 中使用 Find 命令搜索文件如何在 Linux 中使用 Find 命令搜索文件
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Linux 中使用 Find 命令搜索文件

需要在 Linux 中查找文件吗? Find 命令涵盖了在命令行中搜索文件的所有可能性。

有时,您想要访问特定文件,但由于缺乏文件夹组织而无法在系统上找到它。幸运的是,Linux 为您提供了一些方便的实用程序,使您可以轻松搜索计算机上的文件。

find 命令就是这样一种工具,可用于使用文件名、权限、扩展名、大小等来搜索文件。本指南将解释 Linux Find 命令并提供一些示例来演示该实用程序的强大功能。

什么是查找命令?

顾名思义,find 命令允许用户搜索本地存储上存在的文件。与 Linux 文件管理器中的普通搜索功能不同,find 命令具有附加功能,可以根据某些条件过滤文件。

此外,find 命令还提供了在计算机上查找文件的多个标准。您甚至可以使用正则表达式将文件名与特定模式进行匹配。

如何在 Linux 中查找文件

find 命令有许多选项和函数,可以根据指定条件过滤文件。

查找命令语法

find 命令的基本语法是:

find [path] [options] [expression]

例如,以下命令将搜索 /home 目录中的文本文件。

find /home -type f -name "*.txt"

请记住,在存储上搜索文件之前,您需要拥有该特定目录的读取权限。

按名称搜索文件

find 命令最常见的用途是按文件名搜索文件。要使用文件名查找文件,请在默认命令中使用 -name 标志。

find /home -type f -name filename.txt

上述命令将在 /home 目录中搜索名为 filename.txt 的文件。 -type f 选项告诉系统我们正在寻找文件。

如果要忽略文件名中的字符大小写,请将 -name 选项替换为 -iname。

find /home -type f -iname FileName

此命令将查找具有以下名称之一的文件:Filename、filename、FileName、Filename 等。

与任何其他 Linux 命令一样,您也可以使用 .(句点)来指定当前目录的相对路径。

find . -type f -name filename.txt

同样,也可以使用 / 表示 /root 和 ~ 表示 /home。

按扩展名查找文件

搜索具有特定扩展名的文件可以帮助缩小搜索结果范围。要按扩展名查找文件,请使用以下带有 -name 和 -iname 标志的正则表达式。

find /home -type f -name "*.pdf"

此命令将显示具有 .pdf 扩展名的所有文件的列表。请注意,您必须使用引号 ("") 或a 转义星号(*) 字符 反斜杠 (\) 以便终端将其解释为通配符。

您还可以使用 -not 标志来反转上述命令。以下命令将搜索不具有 .pdf 扩展名的文件。

find /home -type f -not -name "*.pdf"

您甚至可以将 find 命令与其他 Linux 命令一起通过管道传输。例如,要更改符合条件的每个文件的审核权限:

find /home - type f "*.pdf" -exec chmod -777 {} \;

此命令将搜索 /home 目录中的所有 PDF 文件并更改其权限,以便任何人都可以读取、写入和执行这些文件。

搜索特定文件类型

除了文件之外,find 命令还可以搜索其他类型的文件。目录、符号链接、套接字和字符设备是 find 支持的一些文件类型。

到目前为止,我们一直在 find 命令中使用 -type f 选项。 f 代表文件。要在 Linux 中搜索其他文件类型,请将 f 替换为其他保留字符。

  • f:常规文件

  • d:目录

  • l:符号链接

  • c:字符设备

  • b:块设备

  • p:命名管道

  • s:套接字

要搜索 /home 目录中存在的子目录:

find /home -type d

按大小查找文件

-size 标志允许您搜索占用磁盘上特定空间量的文件。以下后缀表示各种文件大小:

  • b:512字节块

  • c:字节

  • w:两字节字

  • k:千字节

  • M:兆字节

  • G:千兆字节

要查找文件大小为 1GB 的所有文件:

find /home -type f -size 1G

要搜索小于 1GB 的文件,请在指定大小之前添加减号 (-) 字符:

find /home -type f -size -1G

同样,使用加 (+) 运算符来查找大于 1GB 的文件:

find /home -type f -size +1G

要搜索某个大小范围内的文件:

find /home -type f -size +1M -size -10M

使用时间戳查找文件

您可能已经知道 Linux 为存储上的每个文件分配特定的时间戳。这些时间戳包含修改时间、更改时间和访问时间。

要查找具有特定修改时间的文件:

find /home -type f -name "*.txt" -mtime 5

上述命令将打印最近五天内修改的所有文件。同样,您也可以使用-atime和-ctime根据访问时间和更改时间来过滤文件。

您还可以使用加号和减号来查找大于或小于特定时间戳的文件。

find /home -type f -name "*.txt" -mtime +5

搜索具有特定权限的文件

-perm 选项允许用户搜索具有特定权限集的文件。

find /home -type f -perm 777

如果至少一个类别具有正确的所提供的权限集,请使用正斜杠字符 (/) 列出文件。

find /home -type f -perm /777

按所有者查找文件

使用-user标志来获取属于特定用户的文件。

find /home -user randomuser

查找并删除文件

要使用 find 删除所有过滤的文件,请在命令末尾添加 -delete 标志。

find /home -type f -name "*.pdf" -delete

上述命令将删除 /home 目录中存在的所有 PDF 文件。

您将无法使用 find 删除非空目录。您必须使用 rm 命令来删除 Linux 系统上的此类文件夹。

在 Linux 中组织文件

如果系统上有数百个没有适当名称的目录,那么查找文件就很困难。当您想要根据一个特定条件过滤目录中的文件时,find 命令会派上用场。

为了充分利用 Linux 系统上的存储,文件组织和管理是必须的。正确的文件夹分组和删除冗余数据可以帮助您快速访问所需的文件。

©2015-2025 艾丽卡 support@alaica.com