Skip to content

Gemini CLI 文件系统工具

Gemini CLI 提供了一套全面的工具,用于与本地文件系统交互。这些工具允许 Gemini 模型读取、写入、列出、搜索和修改文件和目录,所有操作都在你的控制下,通常需要确认敏感操作。

注意: 所有文件系统工具都在 rootDirectory(通常是你启动 CLI 的当前工作目录)内操作以确保安全。你提供给这些工具的路径通常应该是绝对路径,或者相对于此根目录解析。

1. list_directory(ReadFolder)

list_directory 列出指定目录路径中直接包含的文件和子目录的名称。它可以选择忽略与提供的 glob 模式匹配的条目。

  • 工具名称: list_directory
  • 显示名称: ReadFolder
  • 参数:
    • path(字符串,必需):要列出的目录的绝对路径。
    • ignore(字符串数组,可选):要从列表中排除的 glob 模式列表(例如 ["*.log", ".git"])。
    • respect_git_ignore(布尔值,可选):列出文件时是否遵守 .gitignore 模式。默认为 true
  • 行为:
    • 返回文件和目录名称列表。
    • 指示每个条目是否为目录。
    • 先按目录排序,然后按字母顺序排序。
  • 确认: 否。

2. read_file(ReadFile)

read_file 读取并返回指定文件的内容。此工具处理文本、图像(PNG、JPG、GIF、WEBP、SVG、BMP)、音频文件(MP3、WAV、AIFF、AAC、OGG、FLAC)和 PDF 文件。对于文本文件,它可以读取特定的行范围。其他二进制文件类型通常会被跳过。

  • 工具名称: read_file
  • 显示名称: ReadFile
  • 参数:
    • path(字符串,必需):要读取的文件的绝对路径。
    • offset(数字,可选):对于文本文件,从 0 开始的行号开始读取。需要设置 limit
    • limit(数字,可选):对于文本文件,要读取的最大行数。
  • 确认: 否。

3. write_file(WriteFile)

write_file 将内容写入指定文件。如果文件存在,它将被覆盖。如果文件不存在,它(以及任何必要的父目录)将被创建。

  • 工具名称: write_file
  • 显示名称: WriteFile
  • 参数:
    • file_path(字符串,必需):要写入的文件的绝对路径。
    • content(字符串,必需):要写入文件的内容。
  • 行为:
    • 将提供的 content 写入 file_path
    • 如果父目录不存在则创建它们。
  • 确认: 是。显示更改的差异并在写入前请求用户批准。

4. glob(FindFiles)

glob 查找与特定 glob 模式匹配的文件(例如 src/**/*.ts*.md),返回按修改时间排序的绝对路径(最新的在前)。

  • 工具名称: glob
  • 显示名称: FindFiles
  • 参数:
    • pattern(字符串,必需):要匹配的 glob 模式(例如 "*.py""src/**/*.js")。
    • path(字符串,可选):要搜索的目录的绝对路径。
    • case_sensitive(布尔值,可选):搜索是否区分大小写。默认为 false
    • respect_git_ignore(布尔值,可选):查找文件时是否遵守 .gitignore 模式。默认为 true
  • 确认: 否。

5. search_file_content(SearchText)

search_file_content 在指定目录中的文件内容中搜索正则表达式模式。可以按 glob 模式过滤文件。返回包含匹配项的行,以及它们的文件路径和行号。

  • 工具名称: search_file_content
  • 显示名称: SearchText
  • 参数:
    • pattern(字符串,必需):要搜索的正则表达式(例如 "function\s+myFunction")。
    • path(字符串,可选):要搜索的目录的绝对路径。默认为当前工作目录。
    • include(字符串,可选):用于过滤搜索哪些文件的 glob 模式(例如 "*.js""src/**/*.{ts,tsx}")。
  • 确认: 否。

6. replace(Edit)

replace 替换文件中的文本。默认情况下替换单个出现,但当指定 expected_replacements 时可以替换多个出现。此工具设计用于精确、有针对性的更改,需要在 old_string 周围有足够的上下文以确保修改正确的位置。

  • 工具名称: replace
  • 显示名称: Edit
  • 参数:
    • file_path(字符串,必需):要修改的文件的绝对路径。
    • old_string(字符串,必需):要替换的确切文字文本。
    • new_string(字符串,必需):用于替换 old_string 的确切文字文本。
    • expected_replacements(数字,可选):要替换的出现次数。默认为 1
  • 确认: 是。显示建议更改的差异并在写入文件前请求用户批准。

这些文件系统工具为 Gemini CLI 理解和与你的本地项目上下文交互提供了基础。

aicodex 文档网站