当前位置:首页>Linux>Linux 下 find 命令更好的替代者 fd !

Linux 下 find 命令更好的替代者 fd !

  • 2026-10-11 07:51:36
Linux 下 find 命令更好的替代者 fd !

在 Linux 中,通常情况下默认使用 find 命令进行文件的搜索,但是 find 命令语法过于繁琐,默认搜索效率低,这时候 fd 命令出现了。

fd 是什么?

fd 是一款 Rust 语言编写的现代开源文件搜索工具,全称 fd-find,主打简洁、高速、易用,是传统 find 命令的轻量化升级版。

fd 设计的初衷:

  • 简化 find 语法

  • 提升搜索速度

  • 优化使用体验

  • 适配开发场景

fd 的安装

fd 并没有随 Linux 发行版默认安装,所有需要手动使用命令安装

Ubuntu/LinuxMint/Debian

sudoapt install fd-find

默认安装后命令是 fdfind ,通过别名进行定义为fd。

echo"alias fd=fdfind">> ~/.zshrc
source~/.zshrc

后续在终端中就可以直接输入 fd 来使用它了。

fd 基础语法

fd [OPTIONS] [PATTERN] [PATH...]
  • PATH:不写默认当前目录递归搜索

  • PATTERN:默认正则(不是通配符)

  • 默认忽略隐藏文件、忽略 .gitignore/.fdignore 里的文件

fd 常用选项说明

1) 隐藏文件 / 忽略规则
  • -H, --hidden:包含隐藏文件 / 目录

  • -I, --no-ignore:不读取 .gitignore/.fdignore

  • -u, --unrestricted:等价于 -HI(全部不忽略)

2) 类型过滤(-t)
fd -tf   # 只找文件
fd -td   # 只找目录
fd -tl   # 只找软链接
3) 扩展名过滤(-e)
fd -emd          # 所有 .md 文件
fd -etxt -elog  # .txt 或 .log
4) 排除(-E)
fd -Enode_modules -E'.git'#排除指定内容
5) 大小写
  • 默认:智能大小写(小写 pattern → 不区分大小写;含大写 → 区分)

  • --case-sensitive:强制区分

  • --ignore-case:强制不区分

6) 深度控制
fd -d2# 最多递归 2 层
7) 执行命令(-x /-X)
  • -x cmd:每条结果并行执行(非常快)

  • -X cmd:所有结果一次性传给命令(类似 xargs)

fd -ezip -xunzip
fd -etxt -Xcat
8) 其他常用
  • -L:跟随软链接

  • -p:显示完整路径

  • -h:简短帮助;--help:详细帮助


四、实用示例(直接能用)

# 1. 找所有包含 "table" 的文件
fd table
# 2. 找以 Error 开头、.vue 结尾的文件(正则)
fd '^Error.*\.vue$'
# 3. 只在 /etc 下找 .conf 文件
fd -econf . /etc
# 4. 找隐藏的 .env 文件
fd -H'^\.env'
# 5. 排除 build 和 dist 目录找 .js
fd -e js -E build -E dist

# 6. 批量删除所有 .tmp 文件
fd -e tmp -x rm

# 7. 统计所有 .vue 文件行数
fd -e vue -X wc -l

# 8. 只搜 2 层目录结构内包含 table 的文件
fd -d 2 table

# 9. 只搜索文件
fd -t f table

# 10. 只搜索目录
fd -t d table

fd 好在哪里?

1. 语法极简,默认行为更合理

  • find 要记一堆 -name/-iname/-regex,fd更贴近直觉

2. 速度明显更快(并行遍历 + 智能忽略)

  • fd 用 Rust 编写,多线程并行扫描目录

  • 默认跳过隐藏、gitignore,减少大量无用文件

  • 实测:百万级文件系统,fd 常比 find快几倍到一个数量级

3. 默认彩色输出,可读性强

  • 目录、文件、链接颜色区分,一眼看清类型

  • find 默认纯文本,要自己配高亮

4. 内置 ignore 机制,开发场景极爽

  • 自动读取:.gitignore、.fdignore、.ignore

  • 项目里 node_modules、dist、.git默认不扫,不用手动排除

5. -x 并行执行,批量处理超高效

fd -ejpg -xconvert {} -resize50% {}_small.jpg
  • find 要配合 xargs -P 才勉强并行,语法繁琐

6. 更友好的正则 & 大小写

  • fd:正则默认,小写自动不区分大小写

  • find:默认通配符,正则要 -regex,大小写控制麻烦

当然 fd 也有不足的地方,例如没有时间 / 权限 / 大小筛选(-mtime、-perm、-size 等)更复杂一些选项筛选。

写在最后

虽然 fd 不能完全取代 find,但日常使用的大部分场景中 fd 替代 find 来进行操作,效率更高,响应迅速,使用更简单反而能提升工作效率和文件查找效率。

最新文章

随机文章