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 结构使得通过搜索目录和子目录来有效地找到文件。
感谢您的阅读,请在评论部分告诉我们您的反馈和建议。