ANGRYsearch – Linux 上的超快速文件搜索桌面工具

ANGRYsearch 是一個 linux 文件搜索實用程序,它試圖模擬 Windows 中可用的“一切搜索引擎”。 ANGRYsearch 會在您鍵入文件名或目錄時顯示結果。

ANGRYsearch 是用 Python 3 編寫的,使用 PyQt5 作為 GUI。 本教程介紹了該工具的安裝和使用,這是一個在任何基於 linux 的發行版中的基於 python 的快速搜索實用程序。

安裝所需的軟件包

安裝很簡單,因為沒有從源代碼等複雜的編譯方式。這些步驟包括一些需要預先安裝的依賴項。

依賴關係——python3-pyqt5、xdg-utils

python3 GUI需要PyQt5,大多數發行版都有開箱即用的xdg-utils。

 # sudo apt install python3-pyqt5 xdg-utils

可選依賴

python3-gobject – 自動更新的桌面通知。

工具 – 如果您使用 Thunar 或 PCmanFM 並使用配置選項,則需要此選項 fm_path_doubleclick_selects

安裝 python3-gobject

 # sudo apt install python-gi python-gi-cairo python3-gi python3-gi-cairo gir1.2-gtk-3.0

安裝 xdotool

 # sudo apt-get install xdotool

安裝 ANGRYSearch

安裝依賴項後,下載 ANGRYsearch 並解壓縮。 解包目錄將包含一個名為 install.sh 的文件。 此腳本將使用正確的權限將文件複製到所需位置。

 # wget https://github.com/DoTheEvo/ANGRYsearch/archive/v1.0.0.tar.gz
 # tar xf v1.0.0.tar.gz
 # cd ANGRYsearch-1.0.0
 # chmod u+x install.sh 
 # sh install.sh

此時,您可以通過在終端中執行以下操作或從開始菜單下的“附件”中單擊來運行憤怒搜索。

 # angrysearch

配置 ANGRYSearch

配置和數據庫文件可以在 ~/.config/angrysearch/angrysearch.conf~/.cache/angrysearch/angry_database.db 分別。 ANGRYsearch 數據庫可以在配置文件中設置為兩種不同的模式,精簡模式和完整模式默認為精簡模式。

精簡模式 僅顯示文件和目錄的名稱和路徑。

完整模式 顯示最後修改的大小和日期

完整模式的缺點是,由於每個文件和目錄都會獲得額外的 stats 調用,因此在驅動器中爬行大約需要兩倍的時間。

有 3 種搜索模式,默認為快速。

快速模式 – 當您勾選輸入字段旁邊的複選框但找不到子字符串時啟用此功能。
慢速模式 – 取消選中復選框時啟用此模式。 此模式稍慢,但可以找到子字符串。
正則表達式模式 – 您可以通過按 F8 鍵激活此模式,以橙色背景表示。 這是使用正則表達式進行非常精確搜索的三個中最慢的搜索,設置為不區分大小寫。 在這種模式下,不會搜索整個路徑,而只會顯示文件和目錄名稱。

編輯配置文件並根據您的選擇編輯參數值。

 #  vi ~/.config/angrysearch/angrysearch.conf
 [General]
 angrysearch_lite=false
 conditional_mounts_for_autoupdate=/mnt/angrySearch
 darktheme=false
 directories_excluded=.thumbnails
 fast_search_but_no_substring=true
 file_manager=spacefm
 fm_path_doubleclick_selects=false
 icon_theme=faenza
 notifications=true
 number_of_results=500
 regex_mode=true
 row_height=25
 typing_delay=false

 [Last_Run]
 geometry=@ByteArray(x1xd9xd0xcbx2x9cKx3mx2x83x9dgx3lx2x82x4)
 window_state=@ByteArray(xffxfdx2xd0x2x6x4x4bbxfc)

上面的配置文件是在第一次運行憤怒搜索時創建的。 您也可以刪除此文件。 在下一次運行中,此文件將使用默認值再次創建。

憤怒搜索精簡版: 默認情況下設置為 true。

conditional_mounts_for_autoupdate: 默認為空。 更新數據庫時所需的掛載點。 如果掛載點丟失,通過 crontab 的自動更新將不會運行。 在這種情況下,系統通知對話框將通知您安裝點丟失並防止在並非所有驅動器都存在時覆蓋搜索數據庫。 該字段的值是系統掛載點,空間分隔。

黑暗主題: 默認設置為 false。 如果設置為 true,則應用程序界面將使用深色主題,如 qdarkstylesheet.qss 中所定義。 深色主題的圖標包含在文件 resource_file.py 中。

目錄_排除: 默認為空。 搜索時要忽略的目錄。 這些值是用空格分隔的目錄名稱。 目錄 /proc 是硬編碼的,可以忽略。

fast_search_but_no_substring: 默認設置為true。 此字段包含影響搜索和子字符串速度的複選框的最後一個值。

文件管理器: 默認為空。 當留空時,angeredsearch 將嘗試使用 xdg-utils 自動檢測默認文件管理器。 如果設置/檢測到文件管理器(’dolphin’、’nemo’、’nautilus’、’doublecmd’),行為將略有改變,向這些文件管理器發送文件的完整路徑,在配置文件中打開時突出顯示目標文件文件管理器。

fm_path_doubleclick_selects: 默認設置為 false。 需要我們在依賴項部分安裝的 xdotool 包。 當設置為 true 時,Thunar、PCmanFM 和 SpaceFM 文件管理器將能夠打開包含所選文件的目錄。

icon_theme: 默認設置為 adwaita。 這也可以從更新窗口中的程序界面進行設置。 有 6 種圖標類型 – 文件夾、文件、音頻、圖像、視頻、文本。

通知: 默認設置為true。 當使用 crontab 將自動定期更新設置為在後台運行或由於缺少安裝點而中止時,您將收到桌面通知以通知抓取已完成。

number_of_results: 默認設置為 500。此字段限制在數據庫中的搜索。 較低的數字意味著搜索結果更快。

正則表達式模式: 默認設置為 false。 啟用正則表達式搜索模式。 您可以在運行應用程序時按 F8 鍵在真/假之間切換。

行高度: 默認情況下,此值設置為 0,這意味著默認系統高度。 否則,您可以以像素為單位設置行的高度。

打字延遲: 默認情況下,此值設置為 false。 如果啟用,它會在輸入和搜索數據庫之間引入 0.2 秒的延遲。 當用戶快速輸入時,這將防止不必要的數據庫查詢,因為憤怒的搜索正在等待輸入完成。 這實際上提高了速度較慢的機器的性能,但在現代機器上它可能會對即時響應的感覺產生負面影響。

上次運行: 上次關閉時的應用程序屬性 – 窗口大小、位置、狀態。

現在再次運行憤怒搜索並單擊右上角的“更新”按鈕。 您也可以通過此界面設置圖標主題,忽略目錄。

# angrysearch

在後台更新 Angrysearch 數據庫

文件 angrysearch_update_database.py 用於抓取驅動器並更新搜索域。 使用 crontab 自動執行此文件,每 30 分鐘定期更新搜索數據庫。 使用以下命令為憤怒搜索數據庫更新設置 cron 作業。

 # crontab -e
 */30 * * * * /usr/share/angrysearch/angrysearch_update_database.py

如果系統在預定時間內關閉,則 crontab 將不會嘗試趕上該工作。 如果通知設置設置為 true,那麼一旦上述 cronjob 成功運行,您將收到通知。 如果參數值 conditional_mounts_for_autoupdate 為空,然後您將收到掛載點丟失的通知。 來自 cronjob 的桌面通知並不總是有效,所以在你的發行版中你可能沒有它們。

結論

Linux 中的默認文件搜索實用程序與 dolphin 等文件管理器集成在一起,這在您搜索文件或目錄時需要時間。 相反,AngrySearch 是快速搜索實用程序,如果您需要定期搜索文件,可以使用它。 索引 100 萬個文件需要大約 2 分鐘,索引數據庫大小為 300MB,具體取決於硬盤/固態硬盤。 權衡是憤怒搜索需要一些空間來存儲索引數據庫而不是快速搜索。