Quantcast
Channel: 簡睿隨筆
Viewing all articles
Browse latest Browse all 897

fselect: 擺脫複雜的命令選項,用SQL語法搜尋檔案

$
0
0

雖然我們已經有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=&#039;*.md&#039;
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 &quot;modified,path from j:\JERRY\MOC where modified &gt; &#039;2020-11-07 14:50&#039;&quot;
  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,&#039;k&#039;) from J:\jerry\moc where name=*.md order by size desc limit 20
  1. 把結果儲存起來
fselect name, format_size(size,&#039;k&#039;) from J:\jerry\moc where name=*.md order by size desc limit 20 into html &gt; z:\test\output.html
  1. 排除特定目錄
fselect path from j:\JERRY\MOC where modified = today and path !=  &#039;*.obsidian*&#039;

fselect path from j:\JERRY\MOC where modified = today and path not like  &#039;%.obsidian%&#039;

更進階與複雜的用法請自行參考使用說明。

相關連結

教學影片

##您可能也會有興趣的類似文章


Viewing all articles
Browse latest Browse all 897

Trending Articles