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



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

四、高级搜索选项4.1 按深度选项-d 或 --max-depth <depth> , 当前路径算深度 1 , dir3 下面的 rs 文件就是深度 4 了 。

4.2 按文件类型选项-t 或 --type <filetype> , fd 提供了以下几种 filetype 选项:

  • f:file
  • d:directory
  • l:symlink
  • x:executable
  • e:empty
  • s:socket
  • p:pipe

可以看到所有的 rust、rs、sss、soft 都没有出现在结果集中 。
4.5 按所有者选项-o 或 --owner <user:group>

或者fd -l -o junjiexun:staff 也可以达到同样的效果 , 但是 fd 不支持单独搜索 group , 也不支持通配符 , 如果你有想法的话可以给他提 issue 哦~
4.6 组合命令fd 提供了 -x 或 --exec <cmd>、-X 或 --exec-batch <cmd> 来进行对搜索结果集的进一步处理
找到所有和 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 源码学习的对象也是非常优秀的 , 赶紧学起来!觉得本文还不错的话 , 转评赞走一波!

相关经验推荐