雖然我們已經有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等合用
範例
- 計算某資料夾裡的檔案數
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
- 找出某資料夾與日期相關的檔案
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'"
- 找出某資料夾裡檔名有中文的列表
fselect * from j:\JERRY\MOC where CONTAINS_JAPANESE(name)=true fselect * from j:\JERRY\MOC where kanji(name)=1
- 搜尋出的檔案過多時,可與more或fzf合用
fselect * from j:\JERRY\MOC where kanji(name)=1 | fzf
- 找出資料夾裡大小最大的20個檔案
fselect modified,size,path from j:\JERRY\MOC,j:\jerry\blog order by size desc limit 20
- 使用函數;檔案大小用K表示
fselect name, format_size(size,'k') from J:\jerry\moc where name=*.md order by size desc limit 20
- 把結果儲存起來
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
- 排除特定目錄
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%'
更進階與複雜的用法請自行參考使用說明。
相關連結
- GitHob主頁:jhspetersson/fselect: Find files with SQL-like queries
- GitHub下載:https://github.com/jhspetersson/fselect/releases
- fselect 使用說明
- 我的2020/03/14影片 es+fzf:超快速找檔神器-用Everything Search的命令行es.exe,整合fzf的模糊搜尋;WSL也能使用!
教學影片
##
想在手機閱讀更多教學錦囊資訊?下載【香港矽谷】Android應用 