网易首页 > 网易号 > 正文 申请入驻

一款开源的文件搜索神器,终于不用记 find 命令了

0
分享至

这是 HelloGitHub 推出的《讲解开源项目》系列,用一篇文章带你快速上手有趣的开源项目。

今天给大家推荐一个好用+开源的文件搜索工具:

fd 支持大多数主流操作系统,快来更新你的工具箱感受开源项目带来的便利吧!

一、fd 简介

你还在为寻找文件而烦恼吗?你还在为记不住 find 一大堆参数而烦恼吗?那就赶快来看看我这次推荐的项目 fd 吧!

官方简介:A simple, fast and user-friendly alternative to 'find'

我这里先放一个图,让大家直观地感受下

fd 是一个命令行工具,提供了多种方便的选项进行文件的搜索,而且默认是彩色输出。项目本身是由 Rust 语言编写的,作为系统级编程语言 Rust 拥有媲美 C++ 的运行速度,那 fd 的速度自然也不在话下,更优秀的是,它提供了强大的功能方便用户按照各种条件进行搜索。

这个优秀的项目是不是成功地引起了你的注意呢~

二、fd 如何安装

作为使用的第一步当然是要先安装啦~

fd 提供了各个操作系统平台的安装方式,再不济可以直接通过源码进行安装(前提是有 Rust 的环境噢)

2.1 一键安装

我这里以我本地的 Mac 使用 brew 为例

$ brew install fd

brew 也可以一键升级

$ brew upgrade fd

具体到各个平台的详细安装方法,你可以看这里 安装文档

2.2 源码安装
$ git clone https://github.com/sharkdp/fd.git
$ cd fd$ cargo install --path .
2.3 查看帮助

无论哪种方式安装完成后,就可以直接使用了 -h 或 --help 获取帮助了,--help 就不演示了,区别就是换成了详细的帮助说明,如果你以后忘记了某一个参数也记得使用 --help 来查看哦~

三、fd 快速上手演示

为了能让之后的演示有一个统一的认识,我在这里新建了一个目录作为 fd 的测试目录,我虚构了一些文件和目录来模拟实际情况,包括一个隐藏目录,我之后的演示都会基于该根目录下,选项如果有短名称和长名称,示例中以短名称为例。

该目录大致是这样:

3.1 简单搜索

fd 直接跟想要搜索的内容,会递归搜索当前目录下的所有文件,列出文件名中包含目标内容的结果(结果为当前目录的相对路径)

$ fd Hello
dir1/Hello.java
java/Hello.java

3.2 包含隐藏目录

选项 -H 或 --hidden

3.3 大小写

默认 fd 是匹配智能大小写的,如果你搜索的内容是包含大写会按照大小写精确匹配,但如果是小写会忽略大小写匹配,所以 fd 另外提供了两种选项来严格控制大小写匹配

3.7 包括 .gitignore 里的文件

选项 -I 或 --no-ignore 我这里新建了一个 .gitignore 文件内容只有一个 *.java 用来演示,并且需要把当前目录通过 git init 初始化成 git 的项目。

这些简单的功能已经可以满足一半的日常搜索需求了,接下来我们看看 fd 提供的更高级的搜索选项吧!

选项 -d 或 --max-depth ,当前路径算深度 1,dir3 下面的 rs 文件就是深度 4 了。

4.2 按文件类型

选项 -t 或 --type ,fd 提供了以下几种 filetype 选项:

  1. f:file
  2. d:directory
  3. l:symlink
  4. x:executable
  5. e:empty
  6. s:socket
  7. p:pipe

可以看到所有的 rust、rs、sss、soft 都没有出现在结果集中。

4.5 按所有者

选项 -o 或 --owner

或者 fd -l -o junjiexun:staff 也可以达到同样的效果,但是 fd 不支持单独搜索 group,也不支持通配符,如果你有想法的话可以给他提 issue 哦~

4.6 组合命令

fd 提供了 -x 或 --exec 、-X 或 --exec-batch 来进行对搜索结果集的进一步处理

找到所有和 java 匹配的内容并且删除!(仅仅用做演示,rm -rf 慎用)

$ fd java -X rm -rf

找到所有的 py 并且通过 vim 打开

$ fd py -X vim

还可以使用诸如 unzip、ls、convert 等等其他常用的命令,也可以直接使用 *unix 语法 | 管道符语法进一步处理。

4.7 正则表达式

对于文件的内容搜索,我之前演示的是诸如 Hello、java、py 都是这样的完整文本,实际 fd 默认就是支持正则表达式对内容进行搜索的,但是正则表达式需要使用单引号 ' 包裹起来,我下面演示:将所有 s 开头的文件都能被搜索出来。

上面的选项大部分都是可以同时使用的,篇幅有限我这里就不继续演示了。

五、总结

fd 是一个简单友好的命令行文件搜索工具,而且其开源的属性作为 Rust 源码学习的对象也是非常优秀的,赶紧学起来!觉得本文还不错的话,转评赞走一波!

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国最有可能成为世界级巨头的十家公司!1、比亚迪,2、大疆…

中国最有可能成为世界级巨头的十家公司!1、比亚迪,2、大疆…

魏家东
2024-12-21 09:49:17
从“铁榔头”到“整容狂魔”,64岁医美失败的郎平,近况令人唏嘘

从“铁榔头”到“整容狂魔”,64岁医美失败的郎平,近况令人唏嘘

吾爱纪实
2024-10-24 17:07:33
冬至后最适合吃的十种食物,最冷的十五天要这么吃,安渡寒冬

冬至后最适合吃的十种食物,最冷的十五天要这么吃,安渡寒冬

富贵说
2024-12-22 14:08:21
朱婷李盈莹包揽大奖巅峰相见!最无地自容的只有一人,那就是蔡斌

朱婷李盈莹包揽大奖巅峰相见!最无地自容的只有一人,那就是蔡斌

嘴炮体坛
2024-12-22 23:59:48
四川一女子上班一个星期多次被老板摸腿,还堵厕所猥亵

四川一女子上班一个星期多次被老板摸腿,还堵厕所猥亵

说真话的小陈
2024-12-21 20:21:16
终于实现小区自治了,从上周开始,我们小区门岗空了,物业撤离了

终于实现小区自治了,从上周开始,我们小区门岗空了,物业撤离了

笑熬浆糊111
2024-12-21 00:05:29
一个神经外科医生的话,让我惊出一身冷汗

一个神经外科医生的话,让我惊出一身冷汗

景来律师
2024-12-21 11:12:52
NBA竟然给退休金!王治郅62岁后每年领70万,姚明令人意外

NBA竟然给退休金!王治郅62岁后每年领70万,姚明令人意外

由史
2024-12-22 10:42:31
产妇在家生子开出生证明被拒? 多部门积极介入

产妇在家生子开出生证明被拒? 多部门积极介入

南方都市报
2024-12-21 08:48:06
惊天发现!越南北江省一仓库藏匿11吨中国产烟花爆竹

惊天发现!越南北江省一仓库藏匿11吨中国产烟花爆竹

缅甸中文网
2024-12-22 18:27:06
可口可乐公关失败:民意太大,女老总恐将离任,王楚钦好感度飙升

可口可乐公关失败:民意太大,女老总恐将离任,王楚钦好感度飙升

飞花文史
2024-12-23 11:05:08
普京:俄愿与美国关系正常化

普京:俄愿与美国关系正常化

简观
2024-12-22 20:12:20
高中女同学当年给我塞了3年饭票,如今知她落魄,我主动找上了门

高中女同学当年给我塞了3年饭票,如今知她落魄,我主动找上了门

五元讲堂
2024-12-20 12:06:37
突发公告,63岁独董去世

突发公告,63岁独董去世

鲁中晨报
2024-12-23 00:16:04
德国媒体沦陷!德国女政客爱丽丝·魏德尔说:我们为什么信任中国?

德国媒体沦陷!德国女政客爱丽丝·魏德尔说:我们为什么信任中国?

小企鹅侃世界
2024-12-22 13:25:05
白醋和洗洁精兑在一起,解决了千家万户的大难题,超实用

白醋和洗洁精兑在一起,解决了千家万户的大难题,超实用

枫叶的枫1516
2024-10-12 22:06:46
武汉,下初雪了!

武汉,下初雪了!

鲁中晨报
2024-12-23 10:36:09
逻辑课是怎样消失的

逻辑课是怎样消失的

尚曦读史
2024-12-18 08:44:10
袁记云饺也塌房了!离职员工爆猛料,现包现卖是假象 汤都是假的

袁记云饺也塌房了!离职员工爆猛料,现包现卖是假象 汤都是假的

美食阿鳕
2024-12-22 21:47:56
世界波连发!皇马4-2塞维升第2距榜首1分 姆巴佩传射巴尔韦德破门

世界波连发!皇马4-2塞维升第2距榜首1分 姆巴佩传射巴尔韦德破门

直播吧
2024-12-23 01:20:02
2024-12-23 14:39:00
HelloGitHub
HelloGitHub
带你玩GitHub开源社区
190文章数 5245关注度
往期回顾 全部

科技要闻

造车十年,李斌对蔚来现状“不那么满意”

头条要闻

深圳二孩夫妻再生四胞胎:两室一厅的出租房住九口人

头条要闻

深圳二孩夫妻再生四胞胎:两室一厅的出租房住九口人

体育要闻

逆潮流而行!灰熊已成NBA最另类球队

娱乐要闻

韦唯回应消失!出车祸脊柱折断,险些终身残疾

财经要闻

起底黑色产业链:信息黑洞出卖个人隐私

汽车要闻

柴油才对味 大通星际X 2.5T舒适得不像皮卡

态度原创

教育
旅游
家居
数码
军事航空

教育要闻

2024第48期中国留学生安全提醒:注意假日安全

旅游要闻

上海突然涌入大量韩国人!这些地方大排长龙

家居要闻

现代简约 注重精神空间

数码要闻

曝华为中低端平板将推出智选Hi版本 已有产品上架

军事要闻

专家解读美军为何会击落己方战机

无障碍浏览 进入关怀版