本文介紹兩個命令行工具:
- es.exe:Evcerything Search圖形介面工具的命令行
- fzf(Fast fuZzy Finder):模糊搜尋檔名工具,有Windows與*nix版本
用es.exe快速查出符合檔名後再交給fzf繼續縮小範圍並上下選取要操作的檔案。
更棒的是:在WSL 2裡可以直接用es.exe,找檔案的速度比fzf、locate或find等更是快上許多,再結合fzf就能快速切換目錄與執行檔案。
Everything Search與es.exe
自從2008年開始使用Everything Search後(參考:用Everything在電光石火間找到迷失的檔案),Everything變成必備工具,它直接由NTFS索引搜尋檔名,速度超快,極大地增進了工作效率。
而es.exe則是Everything的命令行客戶端工具,亦即Everything扮演伺服器角色,es.exe透過內部處理通訊(IPC,Inter-Process Commnuication)發出查詢字串給Everything並取回回應,再顯示在命令提示字元裡。es.exe做為客戶端,執行時Everything必須運行才能正確執行,若Everything未啟動,則會顯示下列錯誤訊息:
Error 8: Everything IPC window not found. Please make sure Everything is running.
es.exe命令行選項
es.exe的執行選項很多,用 -h 會查詢說明;選項有 5 大類:
- 搜尋選項
- 排序選項
- 顯示選項
- 匯出選項
- 一般選項
以下是我常用的幾個:
- 用正則運算式:es -r dropbox$
- 顯示日期與檔案大小:es -dm -size .pdf
- -dm:Date Modified
- -dc:Date Created
- -da:Date Accessed
- 顯示日期、檔案大小與高亮顯示:es -dm -size -highlight .pdf
- 加上-no或-no-就是取消,如-nosize
- 用-save-settings將常用選項寫入登錄使能重複套用。-clear-settings則是清除設定
es.exe -dm -size -sizecolor 0x0d -dmcolor 0x0b -highlight -highlight-color 0x0e -save-settings
▼ 顏色代表碼(0x00~0xff)
- 下列選項和 dir 相同,可組合使用:
- 選項開頭字元可斜線 / 或減號 – 皆可使用
- /ad:只列出目錄(Attribute Directory)
- /a-d:只列出檔案
- /od:用日期由小到大排序(Order by Date Ascending)
- /o-d:用日期由大到小排序(Order by Date Descending)
- 以上把d換成s就是檔案大小(Size),n是檔名,e是面副檔名
- es.exe搜尋按Ctrl+C中斷後,若出現字體顏色被改變,可以用color還原
與fzf整合
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
cd ~/.fzf/
./install
source ~/.zshrc
fzf輸入格式
- 按〔Esc〕或輸入exit關閉視窗
- 按〔Enter〕選用並關閉視窗,傳出的文字最後帶有換行符號
輸入字串 |
符合類型 |
說明 |
sbtrkt |
fuzzy-match |
Items that match sbtrkt |
‘wild |
exact-match (quoted) |
Items that include wild |
^music |
prefix-exact-match |
Items that start with music |
.mp3$ |
suffix-exact-match |
Items that end with .mp3 |
!fire |
inverse-exact-match |
Items that do not include fire |
!^music |
inverse-prefix-exact-match |
Items that do not start with music |
!.mp3$ |
inverse-suffix-exact-match |
Items that do not end with .mp3 |
Windows裡如何使用es與fzf
- 不像*nix能做多種變化,Windows裡我找到的方法:只能用剪貼簿。因為只要取回目錄名或檔名,因此不顯示日期與檔案大小:
es.exe -nodm -nosize -r dropbox$ | fzf | clip
cd 貼入剪貼簿內容
- 必須切換為Unicode字碼頁,fzf才能正確顯示中文字:chcp 65001
es.exe選項
es -h:
ES 1.1.0.18
ES is a command line interface to search Everything from a command prompt.
ES uses the Everything search syntax.
Usage: es.exe [options] search text
Example: ES Everything ext:exe;ini
Search options
-r <search>, -regex <search>
Search using regular expressions.
-i, -case
Match case.
-w, -ww, -whole-word, -whole-words
Match whole words.
-p, -match-path
Match full path and file name.
-a, -diacritics
Match diacritical marks.
-o <offset>, -offset <offset>
Show results starting from offset.
-n <num>, -max-results <num>
Limit the number of results shown to <num>.
-path <path>
Search for subfolders and files in path.
-parent-path <path>
Search for subfolders and files in the parent of path.
-parent <path>
Search for files with the specified parent path.
/ad
Folders only.
/a-d
Files only.
/a[RHSDAVNTPLCOIE]
DIR style attributes search.
R = Read only.
H = Hidden.
S = System.
D = Directory.
A = Archive.
V = Device.
N = Normal.
T = Temporary.
P = Sparse file.
L = Reparse point.
C = Compressed.
O = Offline.
I = Not content indexed.
E = Encrypted.
- = Prefix a flag with - to exclude.
Sort options
-s
sort by full path.
-sort <name[-ascending|-descending]>, -sort-<name>[-ascending|-descending]
Set sort
name=name|path|size|extension|date-created|date-modified|date-accessed|
attributes|file-list-file-name|run-count|date-recently-changed|date-run
-sort-ascending, -sort-descending
Set sort order
/on, /o-n, /os, /o-s, /oe, /o-e, /od, /o-d
DIR style sorts.
N = Name.
S = Size.
E = Extension.
D = Date modified.
- = Sort in descending order.
Display options
-name
-path-column
-full-path-and-name, -filename-column
-extension, -ext
-size
-date-created, -dc
-date-modified, -dm
-date-accessed, -da
-attributes, -attribs, -attrib
-file-list-file-name
-run-count
-date-run
-date-recently-changed, -rc
Show the specified column.
-highlight
Highlight results.
-highlight-color <color>
Highlight color 0-255.
-csv
-efu
-txt
-m3u
-m3u8
Change display format.
-size-format <format>
0=auto, 1=Bytes, 2=KB, 3=MB.
-date-format <format>
0=auto, 1=ISO-8601, 2=FILETIME, 3=ISO-8601(UTC)
-filename-color <color>
-name-color <color>
-path-color <color>
-extension-color <color>
-size-color <color>
-date-created-color <color>, -dc-color <color>
-date-modified-color <color>, -dm-color <color>
-date-accessed-color <color>, -da-color <color>
-attributes-color <color>
-file-list-filename-color <color>
-run-count-color <color>
-date-run-color <color>
-date-recently-changed-color <color>, -rc-color <color>
Set the column color 0-255.
-filename-width <width>
-name-width <width>
-path-width <width>
-extension-width <width>
-size-width <width>
-date-created-width <width>, -dc-width <width>
-date-modified-width <width>, -dm-width <width>
-date-accessed-width <width>, -da-width <width>
-attributes-width <width>
-file-list-filename-width <width>
-run-count-width <width>
-date-run-width <width>
-date-recently-changed-width <width>, -rc-width <width>
Set the column width 0-200.
-no-digit-grouping
Don't group numbers with commas.
-size-leading-zero
-run-count-leading-zero
Format the number with leading zeros, use with -no-digit-grouping.
-double-quote
Wrap paths and filenames with double quotes.
Export options
-export-csv <out.csv>
-export-efu <out.efu>
-export-txt <out.txt>
-export-m3u <out.m3u>
-export-m3u8 <out.m3u8>
Export to a file using the specified layout.
-no-header
Do not output a column header for CSV and EFU files.
General options
-h, -help
Display this help.
-instance <name>
Connect to the unique Everything instance name.
-ipc1, -ipc2
Use IPC version 1 or 2.
-pause, -more
Pause after each page of output.
-hide-empty-search-results
Don't show any results when there is no search.
-empty-search-help
Show help when no search is specified.
-timeout <milliseconds>
Timeout after the specified number of milliseconds to wait for
the Everything database to load before sending a query.
-set-run-count <filename> <count>
Set the run count for the specified filename.
-inc-run-count <filename>
Increment the run count for the specified filename by one.
-get-run-count <filename>
Display the run count for the specified filename.
-get-result-count
Display the result count for the specified search.
-get-total-size
Display the total result size for the specified search.
-save-settings, -clear-settings
Save or clear settings.
-version
Display ES major.minor.revision.build version and exit.
-get-everything-version
Display Everything major.minor.revision.build version and exit.
-no-result-error
Set the error level if no results are found.
Notes
Internal -'s in options can be omitted, eg: -nodigitgrouping
Switches can also start with a /
Use double quotes to escape spaces and switches.
Switches can be disabled by prefixing them with no-, eg: -no-size.
Use ^ to escape \, &, |, >, < and ^.
WSL 2的應用
下回分解。
相關連結
解說影片
##
您可能也會有興趣的類似文章
- [WSL#8] es.exe+fzf在WSL裡的應用 (0則留言, 2020/03/14)
- [WSL #4] 熟練Oh-My-Zsh基本操作,快速變身為鍵盤高手 (0則留言, 2020/02/21)
- Windows 10 WSL 2(Windows Subsystem for Linux)的安裝步驟 (0則留言, 2020/01/16)
- [ADS] 在Linux上執行Aqua Data Studio (0則留言, 2006/03/16)
- 快速切換資料夾的DOS指令:go-tool (0則留言, 2014/04/26)
- clink:擴充cmd.exe成為Bash readline命令行的強大編輯功能 (0則留言, 2014/04/26)
- HotShots:Windoiws與Ubuntu皆能使用的截圖工具 (0則留言, 2014/01/11)
- Windows+Linux雙系統救回grub選單的步驟 (0則留言, 2014/01/18)
- 超快速搜檔工具Everything功能更新,能用正規運算式找檔了 (0則留言, 2013/06/28)
- WSL 2環境配置:oh-my-zsh、上百種配色主題與外掛 (0則留言, 2020/01/24)
- 作業系統講古:跟水門事件一樣古老的Bug (0則留言, 2018/11/11)
- [Linux] synergy操作 (0則留言, 2006/03/29)
- SVN2CL: 自動產生變動紀錄的腳本–修改 (3則留言, 2006/08/23)
- Oracle推出免費使用的Oracle Database 10g Express Edition (2則留言, 2005/11/01)
- 獨立的YouTube播放器應用程式,適用於Windows、Mac與Ubuntu (0則留言, 2014/01/19)