fd

fd

find 的现代替代品,语法直观、并行遍历的文件查找工具

核心功能

用 fd PATTERN 这样的简短写法在文件系统中查找条目,替代冗长的 find -iname '*PATTERN*'。它不追求覆盖 find 的全部能力,而是为最常见的查找场景提供合理默认值。

功能亮点

简洁的命令语法

fd PATTERN 即可查找,不必写 find -iname '*PATTERN*' 这类冗长表达式

默认智能过滤

自动跳过隐藏文件与 .gitignore 命中项,需要时用 -H 和 -I 分别恢复

结果并行执行命令

-x 对每个结果并行执行命令,-X 则把全部结果一次性传给同一条命令

彩色区分文件类型

输出按文件类型着色,配色与 ls 一致,长列表中也能一眼分辨

适用场景

• 在项目里按名称片段快速定位某个源文件
• 按扩展名批量收集文件,再交给 clang-format、rg 等命令处理
• 配合 -X 批量转换或清理匹配到的文件

安装配置

bash
Homebrew (macOS):
brew install fd

Ubuntu 19.04+ / Debian Buster+(官方包,可执行名为 fdfind):
apt install fd-find
ln -s $(which fdfind) ~/.local/bin/fd

Arch Linux:
pacman -S fd

Fedora:
dnf install fd-find

Windows:
winget install sharkdp.fd
choco install fd
scoop install fd

Cargo(需 Rust 1.90.0 以上及 make):
cargo install fd-find

使用方法

bash
fd netfl                        # 模糊匹配文件名
fd '^x.*rc$'                    # 用正则表达式匹配
fd passwd /etc                  # 指定搜索的根目录
fd -e md                        # 按扩展名查找
fd -g libc.so /usr              # 按 glob 精确匹配文件名
fd -H pre-commit                # 包含隐藏文件
fd -I num_cpu                   # 包含被 gitignore 忽略的文件
fd -E .git pattern              # 排除指定目录
fd -e jpg -x convert {} {.}.png # 对每个结果并行执行命令

关键指标

尚未核验对标产品,此处只列本工具自身指标,不做对比结论。

指标fd
价格免费
开源
上手难度入门

相关工具

同类工具

优点

  • 命令名和写法都比 find 短,fd PATTERN 即可完成大多数查找
  • 并行遍历目录,且默认忽略隐藏文件与 .gitignore 命中项,结果更干净
  • 智能大小写:全小写模式自动忽略大小写,含大写时自动改为区分大小写
  • 内置 -x / -X 并行执行命令,省去 find -exec 的繁琐写法

缺点

  • 并不打算支持 find 的全部强大功能,复杂条件筛选仍需回到 find
  • Debian / Ubuntu 官方包的可执行文件名是 fdfind,需自行建立 fd 软链
  • 默认过滤规则较多,查找隐藏或被忽略的文件必须显式加 -H / -I