6.39. Findutils-4.4.2

Findutils パッケージはファイル検索を行うプログラムを提供します。 このプログラムはディレクトリツリーを再帰的に検索したり、データベースの生成・保守・検索を行います。 (データベースによる検索は再帰的検索に比べて処理速度は速いものですが、データベースが最新のものに更新されていない場合は信頼できない結果となります。)

概算ビルド時間: 0.5 SBU
必要ディスク容量: 22 MB

6.39.1. Findutils のインストール

Findutils をコンパイルするための準備をします。

./configure --prefix=/usr --libexecdir=/usr/lib/findutils \
    --localstatedir=/var/lib/locate

configure オプションの意味:

--localstatedir

locate データベースの場所を FHS コンプライアンスが定めているディレクトリ /var/lib/locate に変更します。

パッケージをコンパイルします。

make

コンパイル結果をテストするなら以下を実行します。

make check

パッケージをインストールします。

make install

LFS ブートスクリプトパッケージでは、いくつかのスクリプトが find を利用しています。 /usr ディレクトリはブート処理の初めでは認識できないため、このプログラムはルートパーティションに置く必要があります。 同じく updatedb スクリプトは明示的なパスを修正する必要があります。

mv -v /usr/bin/find /bin
sed -i 's/find:=${BINDIR}/find:=\/bin/' /usr/bin/updatedb

6.39.2. Findutils の構成

インストールプログラム: bigram, code, find, frcode, locate, oldfind, updatedb, xargs

概略説明

bigram

かつて利用されていたコマンドで locate データベースを生成します。

code

かつて利用されていたコマンドで locate データベースを生成します。 これは frcode の前身です。

find

指定された条件に合致するファイルを、指定されたディレクトリツリー内から検索します。

frcode

updatedb コマンドから呼び出され、ファイル名の一覧を圧縮します。 これは前置圧縮 (front-compression) を行うもので、データベースサイズを 1/4 から 1/5 に減らします。

locate

ファイル名データベースを検索して、指定された文字列を含むもの、または検索パターンに合致するものを表示します。

oldfind

find の古い版であり、find とは異なるアルゴリズムを用いています。

updatedb

locate データベースを更新します。 これはすべてのファイルシステムを検索します。 (検索非対象とする設定がない限りは、マウントされているすべてのファイルシステムを対象とします。) そして検索されたファイル名をデータベースに追加します。

xargs

指定されたコマンドに対してファイル名の一覧を受け渡して実行します。