Linux Find File

2025年3月17日 | 阅读 7 分钟

Linux 中的 find 命令是一个强大的工具,它允许系统管理员根据大量的搜索技术来管理和定位目录和文件。

它可以按 类型、名称权限、大小、扩展名 等搜索文件和目录。

除了定位目录和文件之外,将 find 命令与其他命令关联起来,可以让我们对结果采取操作。包含 -exec 选项允许系统管理员执行外部命令并执行诸如 移动、删除、复制修改 符合名称、大小等描述标准的文件的权限等操作。

find 命令根据 用户提供的表达式 在目录层次结构中搜索各种目录和文件。它可以对所有匹配的文件执行用户特定的操作。此外,我们还可以与其他工具(如 sed 或 grep)一起使用。

语法-

Linux find 命令的基本语法如下

其中,

  1. path 描述目录。
  2. 要搜索的文件或目录名称: 要搜索的文件名或目录
  3. 要执行的操作: 如移动、删除、复制等。

find 命令中的选项

find 命令有各种可用选项。以下是一些重要选项的讨论和解释

  1. -exec CMD: 找到一个文件,该文件符合 find 命令的标准,并因命令执行成功而返回零退出状态。
  2. -ok CMD: 它与 -exec 选项的功能类似,只是首先会提示用户。
  3. -links N: 它查找具有 'N' 个链接的文件。
  4. -inum N: 它查找具有 inode 'N' 号的文件。
  5. -newer file: 它查找在 'file' 之后创建/修改的文件。
  6. -name demo: 它查找由 'demo' 描述的文件。
  7. -print: 它显示文件路径名,该路径名是通过文件其他标准搜索到的。
  8. -perm octal: 它在权限为 'octal' 时查找文件。
  9. -size +N/-N: 它查找 'N' 个块的文件。在此选项中,'N' 后跟 'c' 可用于以字符为单位测量大小。'-N' 表示大小 < 'N' 块,'+N' 表示大小 > 'N' 块。
  10. -empty: 它查找空目录和文件。
  11. -user name: 它查找由 ID 'name' 或用户名拥有的文件。
  12. !expr: 当 'expr' 为 false 时返回 true。
  13. \(expr \): 当 'expr' 为 true 时返回 true。它用于对与 AND 或 OR 关联的标准进行分组。

查找目录和文件

按扩展名或名称查找特定文件

要搜索特定文件,我们可以通过根目录 (/) 执行以下命令。此命令包含我们要查找的文件的匹配名称。


Linux Find File

请记住,结果包含路径。当我们不知道文件所在的目录,或者它存在于多个地方时,这一点很重要。

我们也可以在当前位置找到其他目录中的文件。我们需要为我们希望搜索的目录提供路径。


Linux Find File

在其他目录中查找特定文件

在这种情况下,我们将查找 newdir 目录中以文件字母开头的所有文件。


Linux Find File

按扩展名查找文件

Linux 中,要查找具有特定扩展名的文件,请将其包含在命令中。


Linux Find File

按名称查找目录和文件

应用以下命令来搜索以 hello 字母开头的文件和目录。在我们的系统中,我们有 hello1、hello2、hello3hello4 文件。

所以让我们执行命令


Linux Find File

上述命令将返回所有以 hello 字母开头的文件和目录。我们需要在命令中指定它来仅搜索目录或文件。

仅查找目录或文件

对于文件,请使用 f 类型开关。


Linux Find File

对于目录,请使用 d 类型选项来仅查找目录。


Linux Find File

查找不区分大小写的命令

-name 选项的所有查找都区分大小写,并且这些将不会提供大写字母的结果。我们可以应用 -iname 选项来获取所有情况。


Linux Find File

在多个目录中查找文件

要在不同目录中查找文件,我们可以将它们的路径包含在命令中。在这种情况下,我们将在 newdir 目录中查找。


Linux Find File

从每个目录中查找多个具有不同扩展名的文件

我们可以应用 find 命令来查找多个具有不同扩展名(如 *.pdf、*.txt、*.doc 等)的文件。这可以单独完成,一次一个扩展名,或者使用包含每个所需扩展名的单个命令。


Linux Find File

查找包含特定文本的文件

我们希望访问包含特定类型文本的文件,但记不起它的文件位置和名称。此命令允许我们查找包含目标文本的每个文件。

要搜索包含 hello 单词的每个文件,我们可以使用以下命令


Linux Find File

-i 选项允许命令忽略大小写,它将搜索文本,无论它是大写还是小写,即 hello、Hello 等。

要搜索特定目录中的文件,我们可以简单地将其包含在命令中。


Linux Find File

根据大小查找目录和文件

我们可以查找大于、等于或小于特定大小、在特定范围内或为空的所有目录和文件。根据我们要查找的目录或文件类型应用适当的大小格式。

大小选项是

M- 兆字节

G- 吉字节

c- 字节

k- 千字节

查找特定大小的文件 - 等于 20MB

要查找每个 20MB 的文件,我们可以使用以下命令

查找大于特定大小的文件

我们可以使用以下命令查找大于特定大小的文件


Linux Find File

在当前目录中查找小于 10MB 的文件

我们可以使用以下命令在当前目录中查找小于 10MB 的文件


Linux Find File

查找大小在 1-3MB 之间的文件

如果搜索特定范围内的文件,例如 1MB 到 3MB 之间,我们可以使用以下命令


Linux Find File

查找大于 10kb 的目录

我们可以使用以下命令


Linux Find File

查找空目录和文件

对于文件

我们可以使用以下命令查找空文件


Linux Find File

或者,

对于目录

我们可以使用以下命令查找空目录


Linux Find File

按修改时间或年龄查找文件

使用此选项,我们可以查找 n 天之前创建的文件


Linux Find File

其中,

-mtime +9 将搜索那些在 9 天前创建的 txt 文件。

按修改日期查找文件

它会搜索过去 n 小时内修改过的文件。


Linux Find File

我们也可以使用以下命令来搜索在过去 n 天内修改过的目录


Linux Find File

根据修改或访问时间查找文件

根据访问的时间或日期查找文件。它允许我们查看在特定时间未被访问或已被访问过的文件。

要查看在我们主目录中过去 15 天未被访问过的文件,我们可以使用以下命令


Linux Find File

我们可以使用以下命令查看正好在 15 天前访问过的文件


Linux Find File

此外,我们可以使用以下命令查看在过去 15 天内访问过的文件


Linux Find File

查找在过去 n 天内更改过的文件

我们还可以使用以下命令考虑 /home 目录中在过去 1 天内更改过的文件


Linux Find File

查找在特定时间更改过的文件

例如,在我们主目录中,7 到 16 天前更改过的每个文件。


Linux Find File

过去 n 分钟内访问的目录和文件

对于文件

要查看过去 15 分钟内访问过的文件,我们可以使用 -amin 选项。命令如下


Linux Find File

对于目录

要查看过去 15 分钟内访问过的目录,我们可以使用 -amin 选项。命令如下


Linux Find File
下一主题Echo 命令