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

Linux 附带了一个名为 find 的强大工具来查找文件(或多个文件)。 默认情况下,它会根据特定条件搜索文件(或多个文件)的子目录。

在本教程中,我们将学习如何 在 Linux 中查找文件 使用命令行。

在 Linux 中查找文件

在 Linux 中查找文件的 find 命令的语法:

find starting-point options expression

起点 – 这可以是当前目录(用 . 表示)或开始过滤的目录路径。 如果没有给出路径,则使用当前目录。

选项 – 控制符号链接的处理、调试选项和性能优化。

表达式 – 要搜索的内容。

例如:

find -O3 -L /etc -name "*.conf"
  • 选项 -03 (options) 告诉执行有效的搜索以提供更好的性能。
  • -L (选项)告诉 find 命令遵循符号链接
  • /etc (starting-point) 指定开始搜索的目录
  • -name "*.conf" (expression) 告诉 find 命令要搜索的内容。

在 Linux 中按名称查找文件

您可以使用 find 命令按名称查找文件。 例如在当前目录和子目录中搜索名为file1.txt 的文件。

find . -name file1.txt

这里 。 (点)表示当前目录。

在目录路径 /home/bob 及其子目录中搜索名为 file2.txt 的文件。

find /home/bob -name file2.txt

要执行不区分大小写的搜索,请使用 -iname 选项而不是 -name:

find /home/bob -iname File2.txt

在 Linux 中按扩展名查找文件

使用 find 命令使用文件扩展名查找文件(或多个文件)。 例如,要搜索扩展名为“.txt”的文件(或多个文件),请键入:

find /home/bob -name "*.txt"

找到一个空文件

要查找一个或多个空文件,请使用文件类型 -empty。

例如,要查找 /tmp 目录中的所有空文件,请键入:

find /tmp -type f -empty

按修改时间查找文件

要按最后修改时间搜索目录下的一个或多个文件,请使用 -mtime 选项。 例如,要查找上次修改时间为 60 天前的文本文件,请键入:

find /home/username -name "*.txt" -mtime -60

查找包含特定字符串的文件

如果要查找包含特定字符串的文件,可以将 find 和 grep 组合在一起。

要搜索包含字符串 ‘example’ 的所有 *.js 文件,请键入:

find . -name '*.js' -exec grep -i 'example' {} ; -print

或者,您也可以通过 grep 命令获得相同的结果。

查找文件并执行命令

有时您需要查找文件并执行删除、更改权限等过程,您可以使用 -exec 选项。

find /var/www/html -name "wp-config.php" -exec chmod 0644 {} ;

有用的查找选项来查找文件

默认情况下,查找忽略符号链接,使用 -L 跟随符号链接。

-maxdepth X – 搜索当前目录以及所有 X 级深的子目录。
-iname – 忽略文本大小写。
-not – 只输出与测试用例不匹配的结果

结论

在本教程中,我们学习了使用命令行在 Linux 中查找文件。 Linux 结构使得通过搜索目录和子目录来有效地找到文件。

感谢您的阅读,请在评论部分告诉我们您的反馈和建议。