主题
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 理解和与你的本地项目上下文交互提供了基础。