fd 是一款现代、快速的 find 替代品,语法简单,默认高亮输出,且自动忽略隐藏文件和 .gitignore 中列出的文件

常用场景速查

1. 基础查找

  • fd report:查找名称包含 “report” 的文件或目录
  • fd -t d report: 查找名称包含 “report” 的目录
  • fd -t f report: 查找名称包含 “report” 的文件
  • fd -g "README.md":精确匹配完整文件名
  • fd src /path/to/search:在指定目录下查找

2. 按条件过滤

  • fd -t f / fd -t d:仅查找文件(file) / 目录(directory)
  • fd -e pdf:查找所有 PDF 文件(按扩展名筛选,无需写通配符)
  • fd -e xlsx budget:查找名称包含 “budget” 的 Excel 文件
  • fd report -d 1:限制搜索层级深度(仅在当前层级查找,不进入子目录)

3. 显示隐藏与忽略文件

  • fd -H config:搜索结果包含隐藏文件(如 .config
  • fd -I node_modules:搜索结果包含被 .gitignore 忽略的文件
  • fd -HI secret:关闭所有过滤(包含隐藏与被忽略的文件)

4. 批量操作 (-x)

使用 -x (或 --exec) 可以对找到的每个文件执行命令,其中 {} 为文件路径占位符:

  • fd -e tmp -x rm {}:批量删除所有的 .tmp 文件
  • fd -e jpg -x mv {} /path/to/backup/:将所有 .jpg 图片移动到备份目录

核心参数一览

参数完整形式作用说明
-t--type指定过滤类型(f 文件,d 目录,x 可执行文件)
-e--extension指定文件扩展名(如 md, png
-d--max-depth限制向下搜索的目录层级深度
-H--hidden搜索范围包含隐藏文件
-I--no-ignore搜索范围包含被 .gitignore 忽略的文件
-g--glob启用通配符/精确匹配(关闭默认的正则匹配)
-x--exec对每一个搜索结果批量执行命令