[转帖]推荐一款比 Find 快 10 倍的搜索工具 FD
推荐一款比 Find 快 10 倍的搜索工具 FD
https://www.hi-linux.com/posts/15017.html 试了下 很好用呢.
Posted by Mike on 2018-08-13
fd 是基于 Rust 开发的一个速度超快的命令行搜索工具,fd 旨在成为 Linux / Unix 下 find 命令的替代品。
fd 虽然不能提供现在 find 命令所有的强大功能,但它也提供了足够强大的功能来满足你日常需要。比如:简洁的语法、彩色的终端输出、超快的查询速度、智能大小写、支持正则表达式以及可并行执行命令等特性。
项目地址:https://github.com/sharkdp/fd
安装 fd
fd 具有良好跨平台特性,支持在 Linux、macOS、Windows 等多种平台下安装。下面我们介绍下几个比较常用平台的安装方法:
- Ubuntu / Debain
12 |
$ wget https://github.com/sharkdp/fd/releases/download/v7.0.0/fd_7.0.0_amd64.deb$ sudo dpkg -i fd_7.0.0_amd64.deb |
- Fedora
1 |
$ dnf install fd-find |
- macOS
1 |
$ brew install fd |
- Windows
Scoop 和 Chocolatey 都是 Windows 下的包管理系统,其具体使用方法都可参考其官网。
12345 |
# 通过 Scoop 安装$ scoop install fd # 通过 Chocolatey 安装$ choco install fd |
更多系统的安装方法可参考官方文档。
fd 命令行选项
12345678910111213141516171819202122232425262728293031 |
USAGE: fd [FLAGS/OPTIONS] [<pattern>] [<path>...] FLAGS: -H, --hidden Search hidden files and directories -I, --no-ignore Do not respect .(git|fd)ignore files --no-ignore-vcs Do not respect .gitignore files -s, --case-sensitive Case-sensitive search (default: smart case) -i, --ignore-case Case-insensitive search (default: smart case) -F, --fixed-strings Treat the pattern as a literal string -a, --absolute-path Show absolute instead of relative paths -L, --follow Follow symbolic links -p, --full-path Search full path (default: file-/dirname only) -0, --print0 Separate results by the null character -h, --help Prints help information -V, --version Prints version information OPTIONS: -d, --max-depth <depth> Set maximum search depth (default: none) -t, --type <filetype>... Filter by type: file (f), directory (d), symlink (l), executable (x) -e, --extension <ext>... Filter by file extension -x, --exec <cmd> Execute a command for each search result -E, --exclude <pattern>... Exclude entries that match the given glob pattern --ignore-file <path>... Add a custom ignore-file in .gitignore format -c, --color <when> When to use colors: never, *auto*, always -j, --threads <num> Set number of threads to use for searching & executing ARGS: <pattern> the search pattern, a regular expression (optional) <path>... the root directory for the filesystem search (optional) |
fd 使用实例
简单搜索
fd 只需带上一个需要查找的参数就可以执行最简单的搜索,该参数就是你要搜索的任何东西。例如:你想要找一个包含 pace 关键字的文件名或目录。
12345678910 |
$ fd pacesource/lib/Han/dist/font/han-space.otfsource/lib/Han/dist/font/han-space.woffsource/lib/pacesource/lib/pace/pace-theme-barber-shop.min.csssource/lib/pace/pace-theme-big-counter.min.csssource/lib/pace/pace-theme-bounce.min.csssource/lib/pace/pace-theme-center-atom.min.csssource/lib/pace/pace-theme-center-circle.min.csssource/lib/pace/pace-theme-center-radar.min.css |
注:fd 默认是不区分大小写和支持模糊查询的。
按指定类型进行搜索
默认情况下,fd 会搜索所有符合条件的结果。如果你想指定搜索的类型可以使用 -t
参数,fd 目前支持四种类型:f
、d
、l
、x
,分别表示:文件、目录、符号链接、可执行文件。下面我们来看几个实际的例子:
- 只搜索包含 pace 关键字的文件
123456789 |
$ fd -tf pacesource/lib/Han/dist/font/han-space.otfsource/lib/Han/dist/font/han-space.woffsource/lib/pace/pace-theme-barber-shop.min.csssource/lib/pace/pace-theme-big-counter.min.csssource/lib/pace/pace-theme-bounce.min.csssource/lib/pace/pace-theme-center-atom.min.csssource/lib/pace/pace-theme-center-circle.min.csssource/lib/pace/pace-theme-center-radar.min.css |
- 只搜索包含 pace 关键字的目录
12 |
$ fd -td pacesource/lib/pace |
搜索指定目录
fd 默认会在当前目录和其下所有子目录中搜索,如果你想搜索指定的目录就需要在第二个参数中指定。例如:要在指定的 /etc
目录中搜索包含 passwd 关键字的文件或目录。
12345 |
$ fd passwd /etc/etc/master.passwd/etc/pam.d/chkpasswd/etc/pam.d/passwd/etc/passwd |
通过正则表达式搜索
- 搜索当前目录下以 head 开头并以 swig 结尾的文件。
1234 |
$ fd '^head.*swig$'layout/_custom/header.swiglayout/_partials/head.swiglayout/_partials/header.swig |
- 搜索当前目录下文件名包含字母且文件名后缀为 PNG 的文件。
123456 |
$ fd '[a-z]\.png$'source/images/apple-touch-icon-next.pngsource/images/searchicon.pngsource/lib/fancybox/source/fancybox_overlay.pngsource/lib/fancybox/source/fancybox_sprite.pngsource/lib/fancybox/source/helpers/fancybox_buttons.png |
其它技巧
- 搜索隐藏文件
fd 支持隐藏文件搜索,如果你需要搜索隐藏文件可以加上 -H
参数。例如:在当前目录下搜索关键字为 zshrc 的隐藏文件。
12 |
$ fd -H zshrc.zshrc |
- 搜索指定扩展名的文件
在当前目录下搜索文件扩展名为 md 的文件。
123456 |
$ fd -e mdREADME.cn.mdREADME.mdsource/lib/fastclick/README.mdsource/lib/jquery_lazyload/CONTRIBUTING.mdsource/lib/jquery_lazyload/README.md |
在当前目录下搜索文件名包含 reademe 且扩展名为 md 的文件。
12345 |
$ fd -e md readmeREADME.cn.mdREADME.mdsource/lib/fastclick/README.mdsource/lib/jquery_lazyload/README.md |
- 排除特定的目录或文件
搜索当前目录下除 lib 目录外的所有包含关键字 readme 的文件或目录。
123 |
$ fd -E lib readmeREADME.cn.mdREADME.md |
搜索指定目录下除文件名后缀为 js 的所有文件。
1234 |
$ fd -E '*.js' -tf . source/lib/fastclicksource/lib/fastclick/LICENSEsource/lib/fastclick/README.mdsource/lib/fastclick/bower.json |
- 结合外部命令对结果进行批量处理
实现的方式有两种:一是和 find 命令的类似的处理方法,通过 xargs
命令来关联相关命令处理。二是通过 fd 自己的 -x
参数来实现。
我们来看一个具体的例子,统计当前目录下所有文件名后缀为 js 的文件的行数。
1234567891011121314151617181920 |
# 通过 -x 参数实现$ fd -e js -x wc -l 30 scripts/merge-configs.js 2225 scripts/merge.js 31 scripts/tags/button.js 12 scripts/tags/center-quote.js 59 scripts/tags/exturl.js 26 scripts/tags/full-image.js 833 scripts/tags/group-pictures.js # 通过 xargs 参数实现$ fd -0 -e js | xargs -0 wc -l 30 scripts/merge-configs.js 2225 scripts/merge.js 31 scripts/tags/button.js 12 scripts/tags/center-quote.js 59 scripts/tags/exturl.js 26 scripts/tags/full-image.js 833 scripts/tags/group-pictures.js |
参考文档
[转帖]推荐一款比 Find 快 10 倍的搜索工具 FD的更多相关文章
- 推荐25款实用的 HTML5 前端框架和开发工具【下篇】
快速,安全,响应式,互动和美丽,这些优点吸引更多的 Web 开发人员使用 HTML5.HTML5 有许多新的特性功能,允许开发人员和设计师创建应用程序和网站,带给用户桌面应用程序的速度,性能和体验. ...
- 推荐一款非常好用的java反编译工具(转)
源: 推荐一款非常好用的java反编译工具
- 推荐一款好用的文件/文件夹对比工具 —— Beyond Compare
推荐一款好用的文件/文件夹对比工具 —— Beyond Compare! 有需要的人,用了都说好: 不知道这个是干嘛用的,说再多也没用.
- 【我的Android进阶之旅】推荐一款视频转换GIF图片格式的转换工具(Video to GIF)
一.背景 最近想把一些Android Demo的运行效果图获取下来,但是一直使用真机进行调试,在电脑上不好截取一段gif动画.而之前使用模拟器的时候可以使用 GifCam 工具进行屏幕动画截取.Gif ...
- Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性
Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性 Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+ ...
- 比hive快10倍的大数据查询利器presto部署
目前最流行的大数据查询引擎非hive莫属,它是基于MR的类SQL查询工具,会把输入的查询SQL解释为MapReduce,能极大的降低使用大数据查询的门槛, 让一般的业务人员也可以直接对大数据进行查询. ...
- 比传统事务快10倍?一张图读懂阿里云全局事务服务GTS
近日,阿里云全局事务服务GTS正式上线,为微服务架构中的分布式事务提供一站式解决方案.GTS的原理是将分布式事务与具体业务分离,在平台层面开发通用的事务中间件GTS,由事务中间件协调各服务的调用一致性 ...
- 推荐15款最佳的响应式 Web 设计测试工具
响应式网页设计是根据设备的屏幕尺寸,平台和方向来开发的网页,是一种对最终用户的行为和环境作出反应的方法.响应式设计使用灵活的网格和布局,图像和智能使用 CSS 媒体查询的组合.当从它们在不同设备使用的 ...
- 推荐一款简单易用线上引流测试工具:GoReplay
一. 引流测试产生背景 日常大部分的测试工作都是在测试环境下,通过模拟用户的行为来对系统进行验证,包括功能以及性能.在这个过程中,你可能会遇到以下问题: 用户访问行为比较复杂,模拟很难和用户行为一致, ...
随机推荐
- WebSocket 实现前后端通信的笔记
之前在做站内信时,用到了 WebSocket ,整理了一些笔记分享如下.本文基于 SpringBoot 2.1.5,本文不涉及环境搭建. 引入依赖 在 Spring 中要使用 WebSocket 功能 ...
- LG1036
当我们看到这道题的时候,我们不仅大吼一声,这不就是搜索嘛. 于是搜索两大刀!搜索目标和搜索状态! 搜索目标:求选数的方案,以及他们的和是否为质数. 搜索状态: 1.从后往前分析目标(或从前往后):和是 ...
- ssh配置基础
1:hostname r12:R1(config)#username xxx secret ppp3:R1(config)#ip domain-name baidu.com 设置域名4:R1(conf ...
- hibernate之多对多关系
hibernate的多对多hibernate可以直接映射多对多关联关系(看作两个一对多) 下面我们拿三张表来做实例 t_book_hb t_book_category_hb(桥接表) t_catego ...
- CSPS_112
这是Dybala神的差点AK场, 可我T2读入写挂&&T3上届算错没有AK 如果这是C... T1 xjb猜了个结论就过对拍 T2 topsort好题 T3 各险绅嗵的一个dp 我打的 ...
- Gift to XBACK(小小礼物)
什么白天 什么黑夜 我没有 准备着给你的 Surprise 你给我的爱 让我觉得已足够 是你让我相信爱会有 是你的爱陪我绕宇宙 打开日记本写下忧愁 你却让我看时间轴 我才知道现在我能看到的画面 拥有你 ...
- python3 报错UnicodeEncodeError
在ubuntu执行python3的时候,出现 UnicodeEncodeError: 'latin-1' codec can't encode characters in position 10-18 ...
- a标签伪类选择器+过度模块
a标签的伪类选择器 1.什么是a标签的伪类选择器?a标签的伪类选择器是专门用来修改a标签不同状态的样式的. 2.格式: 1):link 修改从未被访问过状态下的样式. 2):visited 修改被访问 ...
- 剑指offer:丑数
题目描述: 把只包含质因子2.3和5的数称作丑数(Ugly Number).例如6.8都是丑数,但14不是,因为它包含质因子7. 习惯上我们把1当做是第一个丑数.求按从小到大的顺序的第N个丑数. 解题 ...
- go -- 测试
package 测试 import ( "fmt" "github.com/magiconair/properties/assert" "net/ht ...