fselect: 摆脱复杂的命令选项,用SQL语法搜寻档案

虽然我们已经有Everything/es.exe (Windows)、Spotlight、fzf、locate等命令可以快速搜寻到档案,但要充份掌握好复杂多样的选项可是要花很多功夫。

fselect可以用类似SQL的语法来搜寻档案,让我们有了简化命令选项复杂度的方案。

命令格式:

fselect [ARGS] COLUMN[, COLUMN...] [from ROOT[, ROOT...]] [where EXPR] [order by COLUMNS] [limit N] [into FORMAT] 
  • 语法参考
  • 除非夹有空白,否则字串值可不加单引号
  • 可用双引号夹住命令选项,以防有 >、< 等特殊符号
  • > 比对符号可用 gt 取代,>= 比对符号可用 gte 取代,以此类推
  • 可与more、fzf等合用

范例

  1. 计算某资料夹里的档案数
fselect Count(1) from j:\JERRY\MOC fselect Count(1) from j:\JERRY\MOC where name='*.md' fselect Count(1) from j:\JERRY\MOC where IS_FILE=true fselect Count(1) from j:\JERRY\MOC where IS_DIR=true 
  1. 找出某资料夹与日期相关的档案
fselect path from j:\JERRY\MOC where created = yesterday fselect path from j:\JERRY\MOC where modified = today fselect "modified,path from j:\JERRY\MOC where modified > '2020-11-07 14:50'" 
  1. 找出某资料夹里档名有中文的列表
fselect * from j:\JERRY\MOC where CONTAINS_JAPANESE(name)=true fselect * from j:\JERRY\MOC where kanji(name)=1 
  1. 搜寻出的档案过多时,可与more或fzf合用
fselect * from j:\JERRY\MOC where kanji(name)=1 | fzf 
  1. 找出资料夹里大小最大的20个档案
fselect modified,size,path from j:\JERRY\MOC,j:\jerry\blog order by size desc limit 20 
  1. 使用函数;档案大小用K表示
fselect name, format_size(size,'k') from J:\jerry\moc where name=*.md order by size desc limit 20 
  1. 把结果储存起来
fselect name, format_size(size,'k') from J:\jerry\moc where name=*.md order by size desc limit 20 into html > z:\test\output.html 
  1. 排除特定目录
fselect path from j:\JERRY\MOC where modified = today and path !=  '*.obsidian*'  fselect path from j:\JERRY\MOC where modified = today and path not like  '%.obsidian%' 

更进阶与复杂的用法请自行参考使用说明。

相关连结

教学影片

##


想在手机阅读更多教学锦囊资讯?下载【香港硅谷】Android应用
分享到Facebook
技术平台: Nasthon Systems