ファイルシステム検索

提供: ArchWiki
2015年7月26日 (日) 20:44時点におけるKusakata (トーク | 投稿記録)による版 (ページの作成:「Category:検索 en:File system search {{Related articles start}} {{Related|Core Utilities}} {{Related articles end}} このページではファイルシステム...」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

関連記事

このページではファイルシステムを検索するのに使えるユーティリティを説明しています。

find

find は最初はとっつきにくく感じるかもしれません。また、ファイルの名前を引数として指定すると、ファイルシステムからその名前に一致するファイルを検索するようなコマンドだと勘違いしてしまうこともあるでしょう。そのようなプログラムを求めているときは下の #locate を見て下さい。

find ではディレクトリを指定してエクスプレッションに対してそれぞれのファイルをマッチさせます。これにより強力な"ワンライナー"を書くことができますが、上述のように操作は直感的とは言いづらいものなっています ([1] を参照)。

インストール

findbase パッケージグループに含まれている findutils パッケージに入っています。つまり、Arch ではデフォルトでインストールされます。

オプション

find には約100ものオプションが存在しますが、以下の3つのカテゴリに分類することが可能です。

ファイルシステムトランスバーサル

These include the following,

  • whether or not to follow symbolic-links
  • Optimizations to perform during transversal
  • Whether or not produce a certain kind of diagnostic output

エクスプレッション

Expressions are the meat and potatoes of find. They allow to filter the filesystem for a, potentially explicit, list files. In mathematical terminology, they allow you to define a relation on a list of files. This is the fundamental distinction between find and other search tools!

Expressions can be devided into the following categories

判別式
  • ファイル名
  • ディレクトリの深さ
  • ファイルのタイプ
  • 変更日時
  • ファイルのパーミッション
  • ファイルを引数として指定するシェルコマンド
アクション
  • ファイルの削除
  • シェルコマンドの実行

オペレータ

Operators allow you to combine sets of expressions together.

The power of find is the combination of this rich set of expressions.

使用方法

Any usage of find takes the following general form:

$ find [filesystem transversal options] [list of directories to search] [list of expressions to perform]

For every file listed under the given directories, each expression is performed, from left to right. Thus, the order in which expressions are listed is important!

locate

locate は名前でファイルを探すための Unix ツールです。あらかじめ作成したデータベースファイルを使って検索するので find よりも高速に検索できます。欠点としては、データベースファイルを作成した後にファイルシステムに変更を加えても locate からはわかりません。定期的に updatedb コマンドを実行するようにして、データベースを更新する必要があります。

インストール

他のディストリビューションでは locateupdatedbfindutils パッケージに入っていますが、Arch のパッケージには存在しません。使用したいときは、mlocate パッケージをインストールしてください。mlocate は locate を新しく実装しなおしたツールで、使用方法は同じです。

locate を使用する前に、データベースを作成します。root で updatedb を実行してください。

データベースを最新にする

mlocate をインストールすると、systemd によって毎日スクリプトが自動的に実行されて、データベースが更新されます。root で updatedb を実行することでデータベースの更新はいつでも手動で行えます。

時間を節約するために、/etc/updatedb.conf を編集することで特定のファイルシステムやパスを無視するように updatedb を設定することが可能です。ファイルのセマンティクスについては man updatedb.conf を実行してみてください。デフォルト設定では /media/mnt が無視されるようになっています ("PRUNEPATHS")。そのため locate は外付けデバイスのファイルを検索しません。

デスクトップ検索エンジン

この項目について詳しくは Wikipedia の記事を見て下さい: 検索エンジンの一覧
  • Baloo — KDE のファイルインデックス作成・検索ソリューション。
https://community.kde.org/Baloo || baloo
  • Catfish — 多目的のファイル検索ツール。
https://launchpad.net/catfish-search || catfish
  • DocfetcherJava によるオープンソースのデスクトップ検索アプリケーション。
http://docfetcher.sourceforge.net || docfetcherAUR
  • Gnome Search Tool — ファイルを検索するデフォルトの Gnome ユーティリティ。
http://gnome.org || gnome-search-tool
  • Gnome Search Tool No NautilusGNOME Filesgnome-desktop を使わずにファイルを検索する gnome-search-tool
|| gnome-search-tool-no-nautilusAUR
  • Pinot — パーソナル検索とメタ検索ツール。
http://code.google.com/p/pinot-search/ || pinot
  • Recoll — Xapian がバックエンドのフルテキスト検索ツール。
http://www.lesbonscomptes.com/recoll/ || recoll
  • Searchmonkey — 正規表現が使えるパワフルな GUI 検索ユーティリティ。
http://searchmonkey.sourceforge.net/ || searchmonkeyAUR
  • Strigi — Qt GUI を持った高速なデスクトップ検索エンジン。
http://strigi.sourceforge.net/ || strigi
  • Tracker — オールインワンのインデックス作成・検索ツールとメタデータのデータベース。
http://projects.gnome.org/tracker/index.html || tracker

参照