跳到主要内容

fd 速查表

fd 是一个基于 Rust 的超快速文件搜索工具,是传统 find 命令的现代替代品。默认采用正则表达式搜索文件名,自动忽略 .gitignore 和隐藏文件,支持扩展名过滤、时间过滤、大小过滤以及并行执行命令。43K+ GitHub Stars。

更新: 2026-07-20·30 条命令

快速入门

``bash fd 'config.json' # 按文件名搜索(正则) fd -e py # 查找所有 Python 文件 fd -t d 'src' # 查找 src 目录 fd -H '.env' # 包含隐藏文件 fd -e log -x rm # 删除所有日志文件 fd --changed-within 1week # 最近一周修改的文件 `

基础搜索

使用正则表达式按名称搜索文件和目录。fd 默认不区分大小写,从当前目录递归搜索。

`bash fd 'config.json' # 正则搜索匹配的文件名 fd -s 'Config' # 区分大小写搜索 fd -i 'readme' # 显式不区分大小写 fd -g '*.log' # 使用 glob 模式代替正则 fd -d 3 'main' # 限制搜索深度为 3 层 fd --search-path /var/log # 从指定根目录搜索 fd --absolute-path 'config' # 输出绝对路径 fd --full-path 'src/.*test' # 匹配完整路径而非文件名 `

过滤选项

按扩展名、文件类型、大小、时间和排除模式进行强大过滤。

`bash fd -e py # 仅搜索 Python 文件 fd -t f 'config' # 仅搜索文件 fd -t d 'src' # 仅搜索目录 fd -t l 'link' # 仅搜索符号链接 fd -E 'node_modules' -e js # 排除 node_modules 目录 fd --size '+100MB' # > 100MB 的大文件 fd --size '-1KB' # < 1KB 的小文件 fd --changed-within '1week' # 最近一周内修改的文件 fd --changed-before '2024-01-01' # 指定日期前修改的文件 fd --changed-within '30min' # 最近 30 分钟内修改的文件 `

执行命令

在搜索结果上运行命令,支持灵活的占位符语法。

`bash fd -e py -x wc -l # 统计每个 Python 文件的行数 fd -e jpg -x convert {} {.}.png # JPG 转 PNG({} 完整路径,{.} 无后缀) fd -e txt -X cat # 批量:一次性 cat 所有 txt 文件 fd -e py --exec-batch chmod +x # 显式批量执行 fd -e log --exec rm {} + # 并行执行(类似 find -exec +) fd -e mp3 -x mv {} /backup/ # 移动文件到备份目录 fd -0 -e py | xargs -0 wc -l # NUL 分隔输出配合 xargs `

高级选项

精细控制 fd 的行为:隐藏文件、符号链接、忽略规则和并行度。

`bash fd -H '.env' # 包含隐藏和被 .gitignore 忽略的文件 fd -L 'data' # 跟随符号链接 fd --no-ignore 'secret' # 忽略 .gitignore 规则 fd --no-ignore-vcs 'config' # 仅忽略 VCS 忽略规则 fd --no-ignore-parent 'output' # 不读取父目录的 .gitignore fd --color always 'pattern' # 强制彩色输出 fd -j 8 -e py # 使用 8 个并行线程 fd -0 -e py | xargs -0 wc -l # NUL 分隔输出配合 xargs -0 `

专家技巧

`bash # 查找最近一周修改过的 >100MB 大文件 fd -H --size '+100MB' --changed-within '1week' -t f

# 批量重命名:将所有文件名中的空格替换为下划线 fd -g '* *' -x bash -c 'mv "$1" "${1// /_}"' _ {}

# 递归统计所有 Python 文件的总行数 fd -e py -X wc -l

# 将所有匹配文件复制到目标目录 fd -e pdf -x cp {} /target/

# 交互式删除(配合 fzf 预览后选择) fd -e log -0 | fzf --read0 --multi | xargs -0 rm

# 查找文件系统中的断链符号链接 fd -t l -L -s -H . | while read -r link; do [ ! -e "$link" ] && echo "$link"; done ``

基本搜索(10)

命令难度
fd --help
显示 fd 帮助
基础
fd PATTERN
递归搜索文件名匹配 PATTERN 的文件
基础
fd -s
区分大小写(默认不区分)
基础
fd -i
不区分大小写(显式指定)
基础
fd -g PATTERN
使用全局模式匹配(而非正则)
中级
fd -H
搜索隐藏文件和 .gitignore 忽略的文件
中级
fd -d N
限制最大搜索深度
基础
fd --full-path
在全路径上匹配(而非仅文件名)
中级
fd --absolute-path
输出绝对路径
基础
fd --search-path DIR
指定搜索根目录
基础

过滤选项(8)

命令难度
fd -e EXT
按文件扩展名过滤
基础
fd -t f
只搜索文件(不含目录)
基础
fd -t d
只搜索目录
基础
fd -t l
搜索符号链接
中级
fd -E PATTERN
排除匹配模式的文件
基础
fd --changed-within DURATION
查找最近 N 时间内修改过的文件
中级
fd --changed-before DURATION
查找在某个时间点前修改过的文件
中级
fd --size SIZE
按文件大小过滤
中级

执行操作(5)

命令难度
fd PATTERN -x CMD
对每个搜索结果执行命令
基础
fd PATTERN -x CMD {}
使用 {} 占位符指定参数位置
中级
fd PATTERN -X CMD
批量执行(所有结果作为一次调用)
中级
fd PATTERN --exec-batch CMD
显式批量执行命令
中级
fd PATTERN --exec CMD {} +
并行执行(类似 find -exec +)
高级

高级用法(7)

命令难度
fd -L
跟随符号链接
中级
fd --no-ignore
忽略 .gitignore 规则
中级
fd --no-ignore-vcs
忽略 VCS 忽略规则(保留 .gitignore 目录过滤)
高级
fd --no-ignore-parent
不读取父目录的 .gitignore
高级
fd -0
用 NUL 字符分隔输出(配合 xargs -0)
高级
fd --color always
强制彩色输出(即使管道输出)
中级
fd -j N
设置并行线程数
中级

常见问题

本速查表数据整理自各工具官方文档。最后更新: 2026-07-20。