首页/系统/Linux 运维命令速查/fd 现代文件查找工具
文件与目录76 条

fd 现代文件查找工具

Rust 编写的高性能 find 替代品:语法更短、默认彩色、自动忽略 .gitignore 与隐藏目录,日常查找体验极佳。

Linux 运维命令速查系统更新于 2026-10-13

fd 是什么

fd 是 Rust 编写的高性能查找工具,定位是“日常够用的 find 替代品”:语法更短、默认彩色输出、自动遵循 .gitignore 并跳过隐藏目录,模式默认按正则匹配。它面向人的交互式查找;在条件组合与可移植性上 find 仍然更完整,目标机器没装 fd 或要写进脚本时,find 依旧是基线选择。

基本信息

适用平台Linux/macOS(包名 fd-find,Ubuntu/Debian 命令名为 fdfind);Windows 有 scoop/winget 包
权限要求普通用户即可
语法fd [模式] [路径] [选项]
常用选项-H 含隐藏、-I 忽略 .gitignore 类规则、-t 类型、-e 扩展名、-d 深度、-x/-X 执行
时间过滤--changed-within / --changed-before,支持 2d、10m 等写法

典型使用场景

  • 按扩展名快速找日志、配置与模板(fd -e log、fd -e conf)
  • 在代码仓库里按忽略规则找源码文件,自动绕开 node_modules 与 .git
  • 找最近改动过的文件,配合发布排查(--changed-within 1d)
  • 对匹配结果批量执行命令(-x 逐个、-X 一次性)
  • 排查被忽略的敏感文件或产物(加 -I -H 才看得到)

常用示例

常用示例
fd -e log                          # 按扩展名找日志文件
fd -e conf nginx                   # 名字含 nginx 的 conf 文件
fd -H config /etc                  # -H 包含隐藏文件
fd -I -H .env                      # -I 忽略忽略规则,找到被 .gitignore 排除的文件
fd -t d -d 2 src                   # 只找目录,限定深度 2 层
fd --changed-within 2d -t f        # 最近两天改动过的文件
fd -e tmp -x ls -l                 # 对每个结果执行命令(逐个执行)
fd -e bak -X rm -v                 # 一次性批量执行:破坏性操作务必先干跑确认

常用选项

选项作用注意
-H包含隐藏文件与目录默认跳过隐藏项,找 .env 之类必须加
-I忽略 .gitignore 等忽略规则查被忽略的产物或环境文件时必加
-e 扩展名限定后缀比写通配更直观,可重复使用
-t f/d/l限定文件、目录或软链类型对应 find 的 -type
-x / -X对结果逐个或批量执行命令加破坏性命令前先不加执行、只看清单
--changed-within按修改时间过滤支持 2d、10m 这类人类可读写法
Ubuntu/Debian 因与已有命令名冲突,把可执行文件装成 fdfind。写脚本时要么按发行版分支,要么自行建立软链接,不要假设命令一定叫 fd。
fd -x / -X 会把命令立刻作用在全部匹配结果上:先跑一遍不带执行的版本确认清单,确认无误再追加执行,尤其是 rm、mv 这类不可逆操作。

易错点

  • 默认遵循忽略规则且跳过隐藏文件:找 .env 或构建产物里的文件必须显式加 -H -I,否则会误判成文件不存在
  • 把 fd 当 find 用:复杂条件组合与跨平台可移植性上 find 更完整,写进部署脚本前要权衡
  • 在 Debian/Ubuntu 直接调用 fd:命令名是 fdfind,脚本会静默失败
  • 直接对结果执行 rm:任何误匹配都会真实生效,先干跑确认清单再执行

数据来源与参考

  • fd 官方文档(GitHub sharkdp/fd)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌