查看原文
其他

号称世界上搜索速度最快的神器!

源码哥 GitHub源码 2023-09-18

前言

大家好,我是源码哥。

你还在为寻找文件而烦恼吗?你还在为记不住 find 一大堆参数而烦恼吗?那就赶快来看看源码哥这次推荐的这款神器吧!

简介

fd 是一个简单又快速的find代替方案,我们先来看看效果

我们先来简单介绍一个它的特点:

  • 语法方便,只需要 fd  fd PATTERN 即可
  • 彩色终端数据,可以由上图的展示看到
  • 聪明案例: 默认情况下,搜索不区分大小写. 如果模式包含大写字符*, 则切换为区分大小写字符. .
  • 默认情况下,忽略隐藏的目录和文件.
  • 忽略匹配你.gitignore文件中的模式,默认情况.
  • 正则表达式.
  • Unicode感知.
  • 命令输入量*50%*优于*find: -)
  • 用类似于GNU穿行的语法,执行并行命令

我们看下官网关于搜索速度方面的对比效果:

find

Benchmark #1: find ~ -iregex '.*[0-9]\.jpg$'

  Time (mean ± σ):      7.236 s ±  0.090 s

  Range (min … max):    7.133 s …  7.385 s

fd

Benchmark #3: fd -HI '.*[0-9]\.jpg$' ~

  Time (mean ± σ):     811.6 ms ±  26.9 ms

  Range (min … max):   786.0 ms … 870.7 ms

可以看得出来在搜索速度方面 提升非常显著。

使用

fd是支持多平台的

Ubuntu

从官网下载最新安装包 进行安装

sudo dpkg -i fd_7.0.0_amd64.deb  

macos

brew install fd

windows

您可以从官网下载,或者可以通过scoop安装

scoop install fd

或者

choco install fd

我们先看下使用帮助:

USAGE:
    fd [FLAGS/OPTIONS] [<pattern>] [<path>...]

FLAGS:
    -H, --hidden            搜索隐藏的文件和目录
    -I, --no-ignore         不要忽略 .(git | fd)ignore 文件匹配
        --no-ignore-vcs     不要忽略.gitignore文件的匹配
    -s, --case-sensitive    区分大小写的搜索(默认值:智能案例)
    -i, --ignore-case       不区分大小写的搜索(默认值:智能案例)
    -F, --fixed-strings     将模式视为文字字符串
    -a, --absolute-path     显示绝对路径而不是相对路径
    -L, --follow            遵循符号链接
    -p, --full-path         搜索完整路径(默认值:仅限 file-/dirname)
    -0, --print0            用null字符分隔结果
    -h, --help              打印帮助信息
    -V, --version           打印版本信息

OPTIONS:
    -d, --max-depth <depth>        设置最大搜索深度(默认值:无)
    -t, --type <filetype>...       按类型过滤:文件(f),目录(d),符号链接(l),
                                   可执行(x),空(e)
    -e, --extension <ext>...       按文件扩展名过滤
    -x, --exec <cmd>               为每个搜索结果执行命令
    -E, --exclude <pattern>...     排除与给定glob模式匹配的条目
        --ignore-file <path>...    以.gitignore格式添加自定义忽略文件
    -c, --color <when>             何时使用颜色:never,*auto*, always
    -j, --threads <num>            设置用于搜索和执行的线程数
    -S, --size <size>...           根据文件大小限制结果。

ARGS:
    <pattern>    the search pattern, a regular expression (optional)
    <path>...    the root directory for the filesystem search (optional)

进行简单搜索

cd fd/tests
> fd
testenv
testenv/mod.rs
tests.rs

搜索特性的文件拓展名

cd fd
> fd -e md
CONTRIBUTING.md
README.md

隐藏和忽略文件

> fd pre-commit
> fd -H pre-commit
.git/hooks/pre-commit.sample

正则表达式搜索

cd /etc
> fd '^x.*rc$'
X11/xinit/xinitrc
X11/xinit/xserverrc

fd在使用上来说,也是非常友好,非常简单

最后

有个fd这个神器,我们就可以大大提升我们的效率了。

好了,今天源码哥的分享就到这里了,希望今天的分享能够对大家有所帮助,大家的点赞就是源码哥更新的动力!





公众号后台回复【4211】即可获取本文工具

或者扫描下方二维码关注




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存