搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

一个用于在文件系统中快速查找文件和目录的命令行工具,是 find 的易用替代品。

45,088
1,299
Rust
Apache-2.0
创建于 9 年前

项目介绍

fd 用于在文件系统中查找条目,目标是替代 find 的常见用法,用更短、更直观的命令和合理的默认值减少记忆负担。它默认按正则表达式匹配,也可用 -g 切换到 glob;目录遍历是并行的,结果会像 ls 一样按文件类型着色。默认只匹配文件名,需要匹配完整路径时使用 -p/--full-path。

默认行为偏向实用:跳过隐藏文件和目录,并遵循 .gitignore、.fdignore 和 .ignore 规则,这两点都可以关闭。它还能对每个结果执行命令(-x/--exec,并行执行),或用全部结果调用一次命令(-X/--exec-batch),支持 {}、{/}、{.} 等占位符。适合经常在终端里定位文件或批量处理文件的开发者和普通用户。

快速使用

通过包管理器或 Cargo 安装:

cargo install fd-find

在 Debian/Ubuntu 上,软件包提供的可执行文件名为 fdfind;如果 fd 名称未被占用,README 建议创建一个指向 fd 的链接。也可以使用 Homebrew(brew install fd)、Scoop、Chocolatey、Winget,或从 release 页面下载预编译二进制。

进入要搜索的目录后,用单个参数开始:

fd netfl

这会递归查找名称中包含 netfl 的条目并输出路径。想快速浏览当前目录下的所有条目,可以不带参数运行 fd;指定目录时使用 . 之类的通配模式。fd -h 显示简明选项,fd --help 显示完整说明。

常见用法:

fd -e md                 # 所有 Markdown 文件
fd -e rs mod             # 名称匹配 mod 的 Rust 文件
fd '^x.*rc$'             # 正则表达式
fd -e zip -x unzip       # 对每个压缩包并行执行 unzip
fd -g 'test_*.py' -X vim # 用一个编辑器实例打开匹配文件

选项可以写在模式和路径之后。-x、-X 之后的参数属于被执行的命令,所以同时要传模式和路径时,应把这两个选项放在最后。占位符是否需要加引号取决于所用 shell。

使用约束

  • 从源码构建需要 Rust 1.90.0 或更高版本,以及 make。
  • 默认不搜索隐藏条目,也不搜索被忽略规则排除的内容。需要搜索全部内容时使用 -H、-I 或 -u/--unrestricted;按完整路径搜索需要 -p。
  • -x 并行执行命令,可用 -j/--threads 限制并发(例如 --threads=1 串行执行)。shell 的 alias 和函数不能直接作为 -x/-X 的命令使用。
  • -X rm 这类删除操作应先不带删除步骤试运行。README 也提示:递归删除嵌套的同名目录时可能出现竞态条件。
  • 发布的 Linux 二进制使用 jemalloc,预加载其他内存分配器可能导致崩溃;需要预加载时可用 cargo build --release --no-default-features 构建。
  • 彩色输出依赖 LS_COLORS 环境变量,同时遵循 NO_COLOR。
  • 项目按 MIT 和 Apache-2.0 双许可证分发。

HotRepo 点评

在 2026-11-06 的 Rust 日榜上,fd 新增 100 星,当天最好名次为第 13。Hacker News 上的讨论从 2017 年的 Show HN(456 分)延续到 2019、2022、2024 年,2025 年的讨论帖获得 718 分和 294 条评论,说明它持续被拿出来讨论,而不是只在一轮发布时出现。讨论中有用户称赞维护者的终端工具,也有人指出 fd 与 rg 的同名参数含义不一致,这反映了在已有命令习惯之外再引入一个搜索工具的摩擦。README 还包含作者在单台机器上对比 fd 与 find 的基准测试,并明确说明结果可能因环境而异。

项目源码与说明

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

fd: A simple, fast and user-friendly alternative to 'find'
▲ 718 · 294 条评论 · 2025年3月19日
Show HN: A simple, fast and user-friendly alternative to find, written in Rust
▲ 456 · 215 条评论 · 2017年10月8日
A simple, fast and user-friendly alternative to ‘find’
▲ 432 · 178 条评论 · 2022年5月20日