ANGRYsearchは、Windowsで利用可能な「EverythingSearchEngine」をエミュレートしようとするLinuxファイル検索ユーティリティです。 ANGRYsearchは、ファイル名またはディレクトリを入力すると結果を表示します。
ANGRYsearchは、GUI用のPyQt5を使用してPython3で記述されています。 このチュートリアルでは、LinuxベースのディストリビューションでのPythonベースの高速検索ユーティリティであるこのツールのインストールと使用法について説明します。
必要なパッケージをインストールする
ソースなどからコンパイルする複雑な方法がないため、インストールは簡単です。手順には、事前にインストールする必要のある依存関係がほとんど含まれていません。
依存関係-python3-pyqt5、xdg-utils
PyQt5はpython3GUIに必要であり、ほとんどのディストリビューションにはxdg-utilsが用意されています。
# sudo apt install python3-pyqt5 xdg-utils
オプション-依存関係
python3-gobject -自動更新のデスクトップ通知。
xdotool -これは、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をダウンロードして解凍します。 unpackディレクトリには、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データベースは、構成ファイルで2つの異なるモードに設定できます。ライトモードとフルモードのデフォルトはライトモードです。
› ライトモード ファイルとディレクトリの名前とパスのみを表示します。
› フルモード 最終変更のサイズと日付を表示します
フルモードの欠点は、すべてのファイルとディレクトリが追加の統計呼び出しを取得するため、ドライブのクロールに約2倍の時間がかかることです。
3つの検索モードがあり、デフォルトは高速です。
› 高速モード -これは、入力フィールドの横にあるチェックボックスをオンにしたが、サブ文字列が見つからない場合に有効になります。
› スローモード -このモードは、チェックボックスがオフの場合に有効になります。 このモードは少し遅くなりますが、サブ文字列を見つけることができます。
› 正規表現モード -このモードをアクティブにするには、背景がオレンジ色で示されているF8キーを押します。 これは、正規表現を使用した非常に正確な検索に使用される3つの検索の中で最も遅い検索であり、大文字と小文字を区別しないように設定されています。 このモードでは、パス全体は検索されず、ファイル名とディレクトリ名のみが表示されます。
構成ファイルを編集し、選択に応じてパラメーター値を編集します。
# 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(x1xd9xd0xcb x2 x9c K x3m x2x83 x9d g x3l x2x82 x4 )
window_state=@ByteArray( xff xfd x2xd0 x2x6 x4 x4 b bxfc )
上記の設定ファイルは、怒りの検索を初めて実行したときに作成されます。 このファイルを削除することもできます。 次の実行で、このファイルはデフォルト値で再度作成されます。
angrysearch_lite: これはデフォルトでtrueに設定されています。
condition_mounts_for_autoupdate: デフォルトでは空です。 データベースの更新時に必要なマウントポイント。 マウントポイントがない場合、crontabによる自動更新は実行されません。 その場合、システム通知ダイアログはマウントポイントが欠落していることを通知し、すべてのドライブが存在しない場合に検索データベースを上書きしないようにします。 このフィールドの値は、スペースで区切られたシステムマウントポイントです。
暗いテーマ: デフォルトではfalseに設定されています。 trueに設定すると、qdarkstylesheet.qssで定義されているように、アプリケーションインターフェイスにダークテーマが使用されます。 ダークテーマのアイコンは、ファイルresource_file.pyに含まれています。
directorys_excluded: デフォルトでは空です。 検索中に無視されるディレクトリ。 値は、スペースで区切られたディレクトリ名です。 ディレクトリ/ procは、無視されるようにハードコーディングされています。
fast_search_but_no_substring: デフォルトではtrueに設定されています。 このフィールドは、検索とサブストリングの速度に影響を与えるチェックボックスの最後の値を保持します。
ファイルマネージャー: デフォルトでは空です。 空のままにすると、angrysearchは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に設定されています。このフィールドは、データベースでの検索を制限します。 数値が小さいほど、検索結果が速くなります。
regex_mode: デフォルトではfalseに設定されています。 正規表現検索モードを有効にします。 アプリケーションの実行中にF8キーを押すと、trueとfalseを切り替えることができます。
row_height: デフォルトでは、この値は0に設定されています。これは、デフォルトのシステムの高さを意味します。 それ以外の場合は、行の高さをピクセル単位で設定できます。
types_delay: デフォルトでは、この値はfalseに設定されています。 有効にすると、データベースの入力と検索の間に0.2秒の遅延が発生します。 これにより、怒りの検索が入力の終了を待っているため、ユーザーが高速で入力しているときに不要なデータベースクエリを防ぐことができます。 これにより、実際には低速のマシンでのパフォーマンスが向上しますが、最新のマシンでは、インスタント応答の感触に悪影響を与える可能性があります。
Last_Run: 閉じられた時点での前回のアプリケーションプロパティ(ウィンドウサイズ、位置、状態)。
ここでもう一度怒っている検索を実行し、右上の[更新]ボタンをクリックします。 このインターフェイスを介して、アイコンのテーマを設定し、ディレクトリを無視することもできます。
# 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のデフォルトのファイル検索ユーティリティは、1つまたは複数のファイルを検索するときに時間がかかるdolphinなどのファイルマネージャーと統合されています。 それどころか、AngrySearchは、定期的にファイルを検索する必要がある場合に使用できる高速検索ユーティリティです。 hdd / ssdに応じて300MBのインデックス付きデータベースサイズで100万ファイルのインデックスを作成するには約2分かかります。 トレードオフは、怒りの検索は、高速検索の代わりにインデックスデータベースを格納するためにいくらかのスペースを必要とすることです。