本文首发于《如何在OpenWRT上使用fzf | Deep Router》
😀 fzf 是一个交互式的可以用于任何列表,文件,命令行历史,进程,主机名等的模糊搜索神器。它基于Go语言,没有其他依赖(并不是,依赖完整的find),速度非常快且不需要数据库,相当于Windows上的Everything。。但是OpenWRT的软件仓库并没有提供这个软件的IPK,所以我们要研究一下怎么通过编译方式进行安装。
fzf并未在OpenWRT的仓库中提供,但是我们可以通过git将fzf源码克隆到本地,之后进行编译进行安装:
git clone --depth 1 <https://github.com/junegunn/fzf.git> ~/.fzf
~/.fzf/install
国内用户可以使用gitee的镜像:
git clone --depth 1 <https://gitee.com/mirrors/fzf.git> ~/.fzf
~/.fzf/install
默认情况下,在OpenWRT上使用fzf时会提示:
Command failed: set -o pipefail; command find -L . -mindepth 1 \\( -path '*/\\.*' -o -fstype 'sysfs' -o -fstype 'devf..)
这是由于OpenWRT默认使用busybox作为Unix工具集,其提供的find工具为简化版本,对fstype参数无法完全支持,所以我们需要安装完全版的find命令:
opkg update
opkg install findutils findutils-find --force-reinstall
-force-reinstall
参数的作用是如果之前有安装过findutils的话,强制进行重新安装。安装完成之后,通过fzf
命令即可进入fzf模式。有了fzf,查找OpenWRT软路由上的文件就变得更方便了。
需要注意的是,如果之前通过opkg安装了gcc编译器的话, 需要先卸载gcc编译器,否则会提示ld参数错误。
opkg remove gcc
为什么最近没更新OpenWRT相关的内容?因为路由器已经折腾到一个稳定的状态了呀。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。