其他
号称世界上搜索速度最快的神器!
前言
大家好,我是源码哥。
你还在为寻找文件而烦恼吗?你还在为记不住 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】即可获取本文工具