Ubuntuでファイルシステムを検索し、ほぼ瞬時に結果を取得する最良の方法は何ですか?私はcatfish、trackerおよびubuntuで提供される通常の検索ツールを使用しました。
トラッカーは何も見つけません、ubuntu検索ツールは遅すぎてcatfishほとんどの場合、何も見つかりません。アクセスしたいPDFとDJVUファイルがたくさんあります。ウィンドウには、すべてを検索と呼ばれるプログラムがあり、ほとんど即座に結果を返します。同様のLinuxツールが必要です。
私はLinuxの初心者なので、できるだけ詳細な回答を提供してください。そのようなツールがubuntuに存在しない場合、mandriva、redhatなどの他のLinuxディストリビューションでそのようなツールを見つけることができる可能性は何ですか?
Recoll はこれをあなたのために行うことができます。想像できるほぼすべてのドキュメントタイプのフルテキストインデックスと、PDFドキュメントのページ番号でソートされた結果の概要が特徴です。
ソフトウェアセンターからインストールするか(Recollを検索)、Recoll PPA(Unityレンズ/スコープを含む)から最新バージョンを入手できます。最初に公式のRecollリポジトリを追加します。
Sudo add-apt-repository ppa:recoll-backports/recoll-1.15-on
Sudo apt-get update
Ubuntu 13.04以前を使用している場合は、recoll-lens
をインストールする必要があります。
Sudo apt-get install recoll recoll-lens
Ubuntu 13.10以降では、代わりにunity-scope-recoll
を使用します。
Sudo apt-get install unity-scope-recoll
PPAからインストールするのがこれが初めての場合は、必ず最初にこれらを読んでください。
PPAはシステムに追加しても安全ですか?また、注意すべき「レッドフラグ」は何ですか?
Recollレンズ/スコープを使用する前に、少なくとも1回Recollを実行して検索インデックスを作成する必要があります。
Recollの使用方法に関する詳細なドキュメントは here にあります。
ファイル名のみを検索するには-コンテンツを無視します-locate
ツールを使用できます。検索は非常に高速です。
locate '*.pdf'
すべてのpdfファイルがリストされます。詳細については、マニュアルページを参照してください。
$ locate --help
Usage: locate [OPTION]... [PATTERN]...
Search for entries in a mlocate database.
-b, --basename match only the base name of path names
-c, --count only print number of found entries
-d, --database DBPATH use DBPATH instead of default database (which is
/var/lib/mlocate/mlocate.db)
-e, --existing only print entries for currently existing files
-L, --follow follow trailing symbolic links when checking file
existence (default)
-h, --help print this help
-i, --ignore-case ignore case distinctions when matching patterns
-l, --limit, -n LIMIT limit output (or counting) to LIMIT entries
-m, --mmap ignored, for backward compatibility
-P, --nofollow, -H don't follow trailing symbolic links when checking file
existence
-0, --null separate entries with NUL on output
-S, --statistics don't search for entries, print statistics about each
used database
-q, --quiet report no error messages about reading databases
-r, --regexp REGEXP search for basic regexp REGEXP instead of patterns
--regex patterns are extended regexps
-s, --stdio ignored, for backward compatibility
-V, --version print version information
-w, --wholename match whole path name (default)
また、非常に大きなPDFのライブラリを検索します。私にとって、これはMS Windowsを恋しく思うLinuxの1番目のフラストレーションです。この時点ですべてを試しましたが、今のところ解決した解決策は、以下のプログラムを組み合わせて使用することです。
残念ながら、現時点ではこれらのいずれもUbuntuリポジトリに存在しないようで、不安定な場合があります。したがって、Recoll(現在Ubuntu 14.04のデフォルトのリポジトリにあると思いますか)または他の何かがあなたのために働くなら、それを固守するほうが良いでしょう。
1)Synapse
インストール:詳細については この投稿 をお読みくださいが、基本的にはターミナルで次のコマンドを実行することでインストールできます。
Sudo apt-add-repository ppa:synapse-core/testing
Sudo apt-get update
Sudo apt-get install synapse
ポジティブ
負
2)Launchy
インストール:パッケージをダウンロードします こちら 。
ポジティブ:
負:
3)DocFetcher
インストール:どこかのリポジトリで見つけられない限り、ポータブル版にこだわっています。それをダウンロードしてください こちら そして指示に従ってください。
ポジティブ:
負:
Dashが追いついて、このすべてを時代遅れにしてくれることを願っていますが、その間、これら3つはほとんど私が使用しているものです。
他のオプションは試してみる価値があります:
別のオプションはSynapseです。
Zeitgeistの結果を統合します。
システムには多くのドキュメントがありますが、Synapseが必要なファイルを検索できる速さに驚いていました。
Sudo apt-get install synapse
乾杯
コマンドラインオプションの場合、 "silver searcher"が私の意見では最高です。 find
およびawk
よりもはるかに高速であり、使用方法も簡単です。
ag <path>
Ubuntu 14.04からインストール
Sudo apt-get install silversearcher-ag
find
およびawk
に対する速度の比較をご覧ください
gnome-search-toolも使用できます。 Sudo apt-get install gnome-search-tool
で取得できます
次のPythonコードは、検索結果を非常にすばやく返します。 fnmatch.fnmatch(file,'*.txt)
の2番目のパラメーターを探しているものに変更するだけです。信じられないほど速いです。
import fnmatch
import os
for file in os.listdir('.'):
if fnmatch.fnmatch(file, '*.txt'):
print file