如何使用命令行在 Linux 中查找文件

搜索位置快捷方式

find 命令后的第一个参数是我们要搜索的位置。
尽管我们可以指定一个特定的目录,但我们可以使用元字符作为替代。

与此命令一起使用的三个元字符包括:

  • 句点 (.) :指定当前和所有嵌套文件夹。
  • 正斜杠 (/) :指定整个文件系统。
  • 波浪号 (~) :指定活动用户的主目录。

搜索整个文件系统可能会产生拒绝访问错误。
如果我们需要在标准帐户通常无法访问的地方进行搜索,请使用提升的权限运行该命令(通过使用 sudo 命令)。

模式 (pattern)

搜索文件时,可以使用模式。
例如,搜索所有扩展名为 mp3 的文件:

find / -name *.mp3

根据我们使用的shell,我们可能需要转义星号。
如果我们运行该命令并没有得到我们期望的结果,请尝试引用整个模式以转义星号,如下所示: find/-name '*.mp3'

在 Linux 中使用“find”命令定位文件

用于搜索文件的命令称为 find 。

find 命令的基本语法如下:

find filename

默认情况下,当前活动路径标记搜索位置。
要搜索整个驱动器,执行以下内容:

find / filename

但是,如果要搜索当前所在的文件夹,请使用以下语法:

find . filename

在整个驱动器中按名称搜索时,请使用以下语法:

find / -name filename
  • find 命令的第一部分是 find 命令。
  • 第二部分是从哪里开始搜索。
  • 下一部分是确定要查找的内容的表达式。
  • 最后一部分是要查找的文件的名称。

要访问大多数发行版中的 shell(有时称为终端窗口),请单击相关图标或者按 Ctrl+Alt+T。

Find 命令的使用示例

以下是使用 find 命令的一些方法。

Linux 如何查找X天前访问过的文件

要查找 100 多天前访问过的主文件夹中的所有文件:

find ~ -atime +100

Linux如何查找空文件和文件夹

要查找系统中的所有空文件和文件夹:

find / -empty

Linux如何查找所有可执行文件

要查找计算机上的所有可执行文件:

find / -executable

Linux如何查找所有可读文件

要查找所有可读的文件:

find / -readable

如何对找到的文件进行操作

要同时搜索和编辑文件,执行:

find / -name filename -exec nano '{}' \;

上面的命令搜索名为 filename 的文件,然后为找到的文件运行 nano 编辑器。

Nano 是命令的名称,而不是此语法的确切部分。

表达式

我们将使用的最常见的表达式是 -name ,它搜索文件或者文件夹的名称。

但是,我们还可以使用其他表达式:

  • -amin n :文件上次访问时间为 +/- n 分钟前,具体取决于我们输入时间的方式。
  • -anewer :以另一个文件作为参考,以查找最近访问过的任何文件和参考文件。
  • -atime n :上次访问文件的次数比 n 天前多/少,具体取决于我们输入目标时间 (n) 的方式。
  • -cmin n :文件最后一次更改是在 n 分钟前,具体取决于我们输入目标时间 (n) 的方式。
  • -cnewer :以另一个文件作为参考,以查找最近访问过的任何文件和参考文件。
  • -ctime n :上次访问文件的次数多于/少于 n 天,具体取决于我们输入目标时间 (n) 的方式。
  • -empty :文件为空。
  • -executable :文件是可执行的。
  • -false :始终为假。
  • -fstype 类型:文件位于指定的文件系统上。
  • -gid n :文件属于 ID 为 n 的组。
  • -group groupname :文件属于命名组。
  • -ilname 模式:搜索符号链接但忽略大小写。
  • -iname 模式:搜索文件但忽略大小写。
  • -inum n :搜索具有指定 inode 的文件。
  • -ipath path :搜索路径但忽略大小写。
  • -iregex 表达式:搜索表达式但忽略大小写。
  • -links n :搜索具有指定链接数的文件。
  • -lname 名称:搜索符号链接。
  • -mmin n :文件上次访问时间为 +/- n 分钟前,具体取决于我们输入时间的方式。
  • -mtime n :上次访问文件的次数比 n 天前多/少,具体取决于我们输入目标时间 (n) 的方式。
  • -name name :搜索具有指定名称的文件。
  • -newer name :搜索比给定参考文件最近编辑的文件。
  • -nogroup :搜索没有组 ID 的文件。
  • -nouser :搜索没有添加用户的文件。
  • -path path :搜索路径。
  • -readable :查找可读的文件。
  • -regex 模式:搜索匹配正则表达式的文件。
  • -type type :搜索特定类型。类型选项包括:
  • -type d : 目录
  • -type f : 文件
  • -type l : 符号链接
  • -uid uid :文件数字用户 id 与 uid 相同。
  • -user name :文件归指定的用户所有。
  • -writable :搜索可以写入的文件。

如何将 Find 命令的输出发送到文件

find 命令的主要问题是它有时会返回太多结果而无法一次性查看。
将输出通过管道传输到 tail 命令,或者将行输出到文件,如下所示:

find / -name *.mp3 -fprint nameoffiletoprintto
日期:2020-07-15 11:16:36 来源:oir作者:oir