用途:该技能用两个现代命令行工具提供高效的文件系统搜索能力。fd 用于快速按文件名搜索(find 的替代),rg(ripgrep)用于快速按内容搜索(grep 的替代)。
安装:Fedora/RHEL 用 sudo dnf install fd-find ripgrep;Ubuntu/Debian 用 sudo apt install fd-find ripgrep;macOS 用 brew install fd ripgrep;Arch Linux 用 sudo pacman -S fd ripgrep。
主要能力:fd 支持按名称模式搜索、指定目录、忽略大小写(-i)、精确文件名(-x)、类型过滤(-t f 文件、-t d 目录、-t x 可执行、-t l 符号链接)、扩展名过滤(-e py、-e js)、包含隐藏文件(-H)与被忽略文件(-I)、大小过滤(-S +100M、-S -1k)和时间过滤(--changed-within 7d、--changed-before 30d)。rg 支持内容搜索、指定目录、忽略大小写(-i)、整词(-w)、类型过滤(-t py、-T py 排除、--type-list 列出类型)、输出控制(-l 仅文件名、-c 计数、-n 行号、-N 无行号、-C 2 上下文、-o 仅匹配部分)、包含隐藏与被忽略文件(--hidden、--no-ignore)、正则特性(-P PCRE2、-F 固定字符串、-U 多行)。
常见用法:fd -t f -e py "" 查找所有 Python 文件;rg -i "TODO|FIXME|XXX" -t py 搜索代码待办;fd -S +100M -t f 查找大文件;fd --changed-within 1d 查找近期修改文件;rg "def function_name" -t py 查找函数;rg "old_pattern" -r "new_pattern" 预览替换。
适用场景:按名称查找文件、搜索文件内容、快速文件系统导航、项目代码搜索、查找大文件或旧文件、使用正则搜索。
限制与安全:这些工具会读取所指向的文件,搜索敏感目录时需谨慎,可用 --max-depth 限制范围,并在依据结果行动前先审查结果。fd 与 rg 默认忽略隐藏文件和 gitignore 内容,需显式开启。相比 find/grep,二者更快(并行)、默认忽略隐藏与 gitignore、带彩色输出、默认使用正则且命令更短。