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