The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

介紹好用工具:Everything search engine (檔名搜尋工具)

在 Linux 底下一直有個很方便的 locate 指令,但是在 Windows 裡卻一直都沒有內建類似的工具,直到前陣子分享了這篇文章後才從網友「簡睿」留言得知原來有個 Everything Search Engine 搜尋工具,而這套工具就跟 Linux 下的 locate 指令一樣優秀,雖然只能搜尋「檔案名稱」,但是速度之快讓你目瞪口呆,從此之後對這套工具愛不釋手、讚譽有加,也推薦各位安裝使用。

像我個人的硬碟下大約總共有一百多萬個大大小小的檔案,安裝一個好用的桌面搜尋引擎絕對是必要的,雖然 Windows 7 已經內建了桌面搜尋工具而且功能強大,不但能搜尋檔名,還能搜尋檔案的內文,但速度還是不夠人性化 (我所謂的人性化是指在搜尋時沒有「等待」的感覺就算是了)。

在我日常的電腦操作裡,大多時候的搜尋情境都不需要搜尋到檔案的內容,反而是搜尋檔名的機會比較���,例如我經常要找 hosts 檔案、php.ini 檔案、applicationHost.config  檔案、web.config.comment 檔案、machine.config 檔案 … 等等,這些檔案經常會開啟,每次需要開啟的時候都要費力的開啟檔案總管並且一步一步的進入特定目錄,非常的囉唆,但是使用了 Everything Search Engine 之後就如有神助一般的驚喜,找檔案變得非常非常的人性化,操作電腦的速度又更快,看我打電腦的人又更糊塗了。 XD

首先,Everything Search Engine 執行檔非常的小,安裝檔僅 334KB 而已,安裝也非常簡單,不想安裝的人還有 Portable 的版本 (免安裝版),Portable 版本解壓縮後也只有一個 *.exe 檔而已,執行後就能立即使用:image

由於每次開啟 Everything Search Engine 時都會先替整台電腦的所有檔案建立索引以利日後快速搜尋的目的,所以第一次開啟時,會先對所有本機磁碟 (Local Volumn) 進行索引,如果像我檔案這麼多的話,第一次建立索引的時間可能會長一點,大約是 5 秒左右,夠久吧!^^

image

當索引建立完成後就可以開始搜尋檔案了 (注意:只能搜尋檔名與目錄名稱),假設我搜尋 hosts 關鍵字,在不到 100 豪秒(ms) 的時間內就能立即得到搜尋結果,事實上你會感覺打字打完結果就立即出現,非常的人性化,如下圖示:

image

其實不只是單純的字串比對而已,透過一些搜尋選項 (如下圖示) 設定還能使用 Regular Expression 語法進行搜尋,只是啟用 Regex 選項後搜尋速度會明顯變慢許多。除此之外你還能設定搜尋時是否比對大小寫、是否比對完整檔案、是否包含路徑等選項。

image

以上,只是基本功能,能夠解決你 80% 以上的搜尋困擾,但事實上 Everything Search Engine 能給你的還要多更多,透過選項設定與微調你將會發現更多人性化的設計在裡頭,有興趣的人請參考 Help 手冊:

image

image

講完人性化的設計後,要來講點恐怖的東西了,在這小小的 Everything Search Engine 軟體裡內建了一套 HTTP 伺服器 ( 網站伺服器 ) 與一套 ETP/FTP 伺服器 ( 註: ETP = Everything Transfer Protocol ),預設是不啟用的,如果你啟用了這兩個服務的話,透過遠端 HTTP 或 FTP 通訊協定就能搜尋/下載這台電腦裡的任何檔案 (如下圖是 HTTP 連線搜尋檔案的畫面),對資安來說是極大的威脅,各位千萬不要為了方便而鬆懈了對資安的態度。

image

不過如果啟用的話,對於搜尋遠端伺服器上的檔案來說還真是非常方便,就讓各位自行斟酌使用了:

image

當你關閉 Everything Search Engine 之後事實上主程式並不會關閉,而是在背景繼續執行,所以你隨時可以打開 Everything Search Engine 進行搜索,完全不會感覺到慢,而 Everything Search Engine 在背景執行時也會不斷監視本機電腦所有的檔案變更,並且即時的將異動的檔案建立索引,所以你隨時可以搜尋到本機最新且最正確的檔案:

image

如果重開機或將 Everything.exe 程序直接 Kill 掉的話,下次重開其實並不會對整台電腦的檔案重新掃瞄,而是會先讀入原先建立的索引資料後直接從 NTFS 檔案系統讀取最後一筆更新紀錄之後的檔案異動,所以開啟的速度還是非常快的。

image

為什麼 Everything Search Engine 能夠那麼快又那樣即時的搜索檔案呢?這是因為 Everything Search Engine 完全依賴 NTFS 檔案系統的 USN Journal 特性,透過這種方式可以用最少的資源達到對檔案系統異動的最佳監控,真的是非常聰明的抉擇!想對這技術有感覺建議可參考本文最後的相關連結

另外,Everything Search Engine 的搜尋介面也提供了許多語言檔,你只要下載語言包進行安裝就能支援中文了:

image

image

最後,在 Everything 1.2.1.371 這個版本對顯示時間的地方有個小 Bug 無法正確顯示修改日期欄位,不過並不影響使用中文搜尋檔案或顯示中文檔名,作者去年中就說下一版會解決這個問題,不過也經過了半年多都還沒有新版出現,各位可能還要等等了。

image

但臨時的解決方案還是有的,先開啟控制台的「變更日期、時間或數字格式」:

image

再依照下圖所示修改時間格式上午符號下午符號的格式到 AMPM 即可:

image

image

Everything Search Engine 這個短小精幹的工具實在強悍,能靈活運用的人真能省去你許多找檔案的時間,不過你覺得我已經介紹完這套「小工具」了嗎?還沒耶!還有 Everything SDK 還沒講,這部分只能留給有心人士去研究了。

結語:一個好的搜尋引擎不管到哪裡都是王道阿! (rock)

相關連結