0Pricing
DevOps Bootcamp · 课时

搜索文件(find、grep)

探索 'find' 和 'grep' 等强大命令,在整个系统中定位文件及文件内的特定文本模式。

搜索文件(find、grep) 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。

为什么要在 Linux 中搜索?

在 Linux 中查找文件和文本是日常任务。想象一下,您需要在大型项目中定位某个配置文件或某一行代码!

我们将学习两个强大的命令:用于定位文件和目录的 find,以及用于在文件内部搜索文本模式的 grep。

认识 `find` 命令

find 命令会在目录层次结构中搜索文件和目录。它非常灵活!

它的基本结构是:find [path] [expression]。[path] 告诉 find 从哪里开始查找,[expression] 定义要查找的内容。

按名称查找文件

使用 find 最常见的方式是通过 -name 选项按名称搜索。您可以使用 * 等通配符。

让我们查找当前目录中所有以 .txt 结尾的文件。

cd /tmp
touch report.txt document.pdf notes.txt
find . -name "*.txt"

按类型查找文件

您可以使用 -type 选项指定 find 应查找的条目类型:

  • f 表示普通文件
  • d 表示目录

让我们查找当前位置中的所有目录。

cd /tmp
mkdir mydir anotherdir
touch file.txt
find . -type d

按大小查找文件

需要查找大文件?请使用 -size 选项。您可以指定 c(字节)、k(KB)、M(MB)、G(GB)等单位。

  • +10M:大于 10MB
  • -5k:小于 5KB
  • 100c:正好 100 字节

查找大于 1KB 的文件。

cd /tmp
dd if=/dev/zero of=small_file bs=100 count=1 2>/dev/null
dd if=/dev/zero of=large_file bs=2k count=1 2>/dev/null
find . -size +1k

介绍 `grep`

find 用于定位文件,而 grep(Global Regular Expression Print)用于在文件内部搜索特定的文本模式。

它的基本语法是:grep [pattern] [file...]。[pattern] 是您要查找的文本,[file...] 是要搜索的文件。

使用 `grep` 搜索简单文本

让我们创建一个简单的文本文件,并使用 grep 在其中查找某个单词。grep 会输出包含该模式的每一行。

cd /tmp
echo "Hello CoddyKit learners!" > greeting.txt
echo "This is a great lesson." >> greeting.txt
echo "CoddyKit is fun." >> greeting.txt
grep "CoddyKit" greeting.txt

`grep` 选项:-i 和 -n

grep 有两个实用选项:

  • -i:搜索时忽略大小写。
  • -n:显示找到匹配内容的行号。

让我们查找“coddykit”(不区分大小写),并查看行号。

cd /tmp
echo "Hello CoddyKit learners!" > greeting.txt
echo "This is a great lesson." >> greeting.txt
echo "coddykit is fun." >> greeting.txt
grep -i -n "coddykit" greeting.txt

组合使用 `find` 和 `grep`

您可以组合使用 find 和 grep,同时搜索文件及其内容。find 的 -exec 选项可以让您对找到的每个文件运行另一个命令。

这里,我们先查找所有 .txt 文件,再在其中搜索“CoddyKit”。

cd /tmp
echo "Hello CoddyKit" > file1.txt
echo "Hello World" > file2.txt
echo "CoddyKit rocks" > file3.txt
find . -name "*.txt" -exec grep -l "CoddyKit" {} +

快速检查

您有一个包含多个文件的目录。哪个命令可以找到所有名为 log.txt 或 error.log 且大于 50KB 的文件?

总结:搜索文件

做得很好!您已经学会了如何在 Linux 中高效搜索文件及其内容:

  • find:根据名称、类型和大小等不同条件定位文件和目录。
  • grep:在文件内部搜索特定的文本模式,并支持忽略大小写和显示行号等选项。
  • 我们还了解了如何结合使用 find 和 grep,强大地发现文件内容。

继续练习这些命令,掌握 Linux 浏览技巧!

常见问题解答

「搜索文件(find、grep)」课时是免费的吗?

是的 — 「搜索文件(find、grep)」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。

「搜索文件(find、grep)」这节课中我会学到什么?

探索 'find' 和 'grep' 等强大命令,在整个系统中定位文件及文件内的特定文本模式。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 DevOps Bootcamp 需要有经验吗?

无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「搜索文件(find、grep)」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 DevOps Bootcamp 课中编写并运行代码吗?

能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 查看文件内容(cat、less、head、tail)
  2. 理解文件权限(chmod、chown)
  3. 搜索文件(find、grep)
  4. 创建链接:硬链接与符号链接
← 返回 DevOps Bootcamp