fd 简介
fd 是一款免费开源的命令行程序,用于查找文件和文件夹。它和系统自带的 find 命令做同样的事,但语法简单得多:输入 fd 加上名称的一部分,它就会用彩色列出当前文件夹及其下所有匹配的项目。它并行搜索文件夹,因此速度很快;默认情况下会跳过隐藏文件以及 .gitignore 中的内容。fd 由 David Peter 开发,采用 MIT 许可证和 Apache License 2.0 双重许可。
fd 在 Apple 芯片 Mac 和 Intel Mac 的“终端”中运行,可以通过 Homebrew(brew install fd)或 MacPorts 安装。它并不追求实现 find 的全部功能,而是用合理的默认设置覆盖最常见的搜索。
主要功能
fd 让日常的文件搜索简短又快速。
- 简单的语法:用 fd PATTERN 代替 find -iname '*PATTERN*'。
- 正则表达式和通配符:默认使用正则表达式,也可以用通配符模式搜索。
- 非常快:并行搜索文件夹。
- 彩色输出:像 ls 一样按文件类型高亮显示。
- 智能大小写:除非模式中包含大写字母,否则不区分大小写。
- 合理的过滤:跳过隐藏文件和 .gitignore 中的条目;用 -H 和 -I 可将它们包括在内。
- 文件扩展名:用 -e 按扩展名查找文件,例如 fd -e pdf。
- 执行命令:-x 为每个结果并行执行一条命令,-X 则对所有结果只执行一次。
10.5.0 版本新功能
fd 10.5.0 新增了两个选项,并修复了多个问题。
- 新增 --exact 选项,要求整个文件名完全匹配
- 新增 --ignore-parent 选项,用于覆盖 --no-ignore-parent
- 输出到终端时,会对文件名中的控制字符进行安全处理
- 使用 --full-path 时能妥善处理无效的工作文件夹
- 当搜索模式中包含路径分隔符时,警告更加清晰
fd 常见问题
fd 免费吗?
是的。fd 免费且开源,采用 MIT 许可证和 Apache License 2.0 双重许可。
如何在 Mac 上安装 fd?
如果使用 Homebrew,在“终端”中运行 brew install fd;如果使用 MacPorts,运行 port install fd。GitHub 发布页面上还有适用于 Apple 芯片 Mac 和 Intel Mac 的预编译程序。
fd 和 find 有什么不同?
fd 语法更简单,输出带颜色,支持智能大小写,并有跳过隐藏文件和被忽略文件等合理的默认设置,而且速度非常快。它并不覆盖 find 的全部功能,只针对最常见的搜索。
如何用 fd 按扩展名查找文件?
使用 -e 加扩展名。例如,fd -e md 会列出当前文件夹及其下所有 Markdown 文件。
为什么 fd 找不到隐藏文件?
默认情况下,fd 会跳过隐藏的文件和文件夹,以及 .gitignore 中列出的内容。加上 -H 可包含隐藏文件,加上 -I 可包含被忽略的文件,也可以两者都加。
fd 区分大小写吗?
fd 使用智能大小写:全小写的模式会匹配任何大小写,含有大写字母的模式则精确匹配大小写。
如何对 fd 找到的每个文件执行命令?
使用 -x 为每个结果并行执行一条命令。例如,fd -e zip -x unzip 会解压找到的所有 zip 文件。使用 -X 则把所有结果作为参数,只执行一次命令。
fd 能用通配符代替正则表达式吗?
能。fd 默认使用正则表达式;加上 --glob 就可以用 *.txt 这样的通配符模式搜索。
fd 能和 fzf 搭配使用吗?
能。很多人把 fd 设为 fzf 的文件来源,这样模糊查找文件会更快,并且会遵循 .gitignore。
fd.FULLMAC.app 上的 fd 下载来自哪里?
下载按钮指向 fd 的官方 GitHub 页面 https://github.com/sharkdp/fd,那里有安装说明和各个版本。fd.FULLMAC.app 不会修改或重新打包该工具。
相似应用
- tmuxtmux 是一款免费开源的终端复用器。它能让你在一个终端里运行多个程序,分成多个窗口和并排的窗格,并用键盘在它们之间切换。它最有用的功能是会话:从会话中分离后,里面的一切都会继续运行,即使你关闭终端或 SSH 连接中断也没关系;之后重新连接,就能从中断的地方继续。tmux 由 Nicholas Marriott 和其他贡献者开发,以 ISC 许可证发布。开发工具
VigilVigil 是一款免费开源的 Mac 原生终端,让编程智能体像团队一样协作。你不必再亲自在多个智能体窗口之间复制消息,只需把任务交给根节点的管理者智能体,它可以自行启动工作者智能体和子管理者。细节沿着树向下传递,结果以摘要形式返回给管理者,让管理者的上下文保持精简。实时节点树可以一次看到整个团队,每个节点都保留智能体自己的终端界面,你可以打开任意节点直接接手。开发工具
SwitchShuttleSwitchShuttle 是一款 Mac 菜单栏应用,让常用的终端命令只需一次点击或一个快捷键就能运行。你可以把命令整理到多级子菜单中,为每条命令设置全局快捷键和表情图标,然后在任何地方运行,无需先打开终端再输入。它支持 iTerm、Terminal、Warp、Alacritty、Hyper 等终端,每条命令都可以在当前窗口、新标签页或新窗口中运行。开发工具
tty7tty7 是一款用 Rust 编写的 GPU 渲染终端,基于 Zed 的 gpui 和 Alacritty 的终端核心构建。Shell 和窗格归后台服务器所有,而不是归窗口所有,因此即使退出应用,Shell 也会继续运行,无需 tmux。重启后,布局、屏幕内容和受支持代理的对话都会恢复。开发工具
TabbyTabby(原名 Terminus)是一款高度可配置的终端模拟器,同时也是 SSH、Telnet 和串口客户端。它一次替代多种工具:带标签页和分屏的本地终端、管理服务器的连接管理器,以及用于路由器、单片机等设备的串口终端。你的 SSH 密码和密钥可以保存在加密保险库中,可以通过 SSH 传输文件,还能用主题和插件改变外观和功能。Tabby 由 Eugene Pankov 开发,可在 Mac、Windows 和 Linux 上运行。开发工具
kittykitty 是一款快速、功能丰富的终端模拟器,用 GPU 绘制文字,滚动和大量输出都很流畅。它内置标签页和多种布局的分屏窗口,支持真彩色、连字和表情符号,还有自己的图形协议,可以直接在终端里显示图片。kitty 可以通过脚本和命令行控制,并能用称为 kitten 的小程序扩展,例如沿用你的设置进行 SSH 连接、并排比较文件和输入 Unicode 字符。kitty 由 calibre 的开发者 Kovid Goyal 制作。开发工具
David Peter 的更多应用
FULLMAC.app 不托管此应用。下载按钮会将你带到开发者自己的页面。