有时您想访问特定文件但由于缺乏文件夹组织而无法在系统上找到它。 幸运的是,Linux 为您提供了一些方便的实用程序,可让您轻松搜索计算机上的文件。
find 命令就是这样一种工具,可用于使用文件名、权限、扩展名、大小等来搜索文件。本指南将解释 Linux Find 命令并提供一些示例来展示该实用程序的强大功能。
什么是查找命令?
顾名思义, 寻找 命令允许用户搜索其本地存储中存在的文件。 与 Linux 文件管理器中的普通搜索功能不同,find 命令具有可以根据特定条件过滤文件的附加功能。
此外,find 命令提供了几个标准来定位计算机上的文件。 您甚至可以使用正则表达式将文件名与特定模式匹配。
如何在 Linux 中查找文件
find 命令具有许多选项和功能,可根据指定条件过滤文件。
查找命令语法
find 命令的基本语法是:
find [path] [options] [expression]
为了 example,以下命令将在 /家 目录。
find /home -type f -name "*.txt"
请记住,在搜索存储上的文件之前,您需要对该特定目录具有读取权限。
按名称搜索文件
find 命令最常见的用途是按文件名搜索文件。 要使用文件名查找文件,请使用 -姓名 使用默认命令标记。
find /home -type f -name filename.txt
上述命令将搜索一个名为 文件名.txt 在里面 /家 目录。 这 -类型 f 选项告诉系统我们正在寻找一个 文件.
如果要忽略文件名中的字符大小写,请替换 -姓名 选项 -我的名字.
find /home -type f -iname FileName
此命令将查找具有以下任一名称的文件:文件名、文件名、文件名、文件名等。
像任何其他 Linux 命令一样,您可以使用 . (句点)也指定当前目录的相对路径。
find . -type f -name filename.txt
相似地, / 为了 /根 和 ~ 为了 /家 也可以使用。
按扩展名查找文件
搜索具有特定扩展名的文件有助于缩小搜索结果的范围。 要按扩展名查找文件,请使用以下正则表达式和 -姓名 和 -我的名字 旗帜。
find /home -type f -name "*.pdf"
此命令将显示所有具有 .pdf 延期。 请注意,您将不得不逃避 星号 (*) 字符与 引号 (“”) 或 反斜杠 () 以便终端将其解释为通配符。
您也可以使用 -不是 旗帜。 以下命令将搜索没有 .pdf 延期。
find /home -type f -not -name "*.pdf"
您甚至可以将 find 命令与其他 Linux 命令进行管道传输。 为了 example更改符合条件的每个文件的审核权限:
find /home - type f "*.pdf" -exec chmod -777 {} ;
该命令将搜索所有 PDF格式 中的文件 /家 目录并更改其权限,以便任何人都可以读取、写入和执行这些文件。
搜索特定文件类型
除了文件,find 命令还可以搜索其他类型的文件。 目录、符号链接、套接字和字符设备是 find 支持的一些文件类型。
到目前为止,我们一直在使用 -类型 f find 命令中的选项。 这 F 代表 文件. 要在 Linux 中搜索其他文件类型,请替换 F 与其他保留字符。
- F: 常规文件
- d: 目录
- l: 符号链接
- C: 字符设备
- b: 块设备
- p: 命名管道
- s: 插座
搜索存在于 /家 目录:
find /home -type d
按大小查找文件
这 -尺寸 标志允许您搜索占用磁盘上特定空间量的文件。 以下后缀表示各种文件大小:
- b: 512 字节块
- C: 字节
- w: 两字节字
- ķ: 千字节
- 米: 兆字节
- 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
搜索具有特定权限的文件
这 -烫发 选项允许用户搜索具有特定权限集的文件。
find /home -type f -perm 777
使用 正斜杠 特点 (/) 如果至少一个类别具有正确的所提供的权限集,则列出该文件。
find /home -type f -perm /777
按所有者查找文件
使用 -用户 标志以获取属于特定用户的文件。
find /home -user randomuser
查找和删除文件
要使用 find 删除所有过滤的文件,请添加 -删除 命令末尾的标志。
find /home -type f -name "*.pdf" -delete
上述命令将删除所有 PDF格式 中存在的文件 /家 目录。
您将无法使用 find 删除非空目录。 您必须使用 rm 命令删除 Linux 系统上的此类文件夹。
在 Linux 中组织文件
如果您的系统上有数百个没有适当名称的目录,则查找文件很困难。 当您想根据一个特定标准过滤掉目录中的文件时, find 命令会派上用场。
要充分利用 Linux 系统上的存储,文件组织和管理是必须的。 正确分组文件夹和删除冗余数据可以帮助您快速访问所需的文件。