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

配置选项的含义:

--localstatedir

locate数据库的位置指定为 /var/lib/locate ,以符合 FHS 标准。

编译这个软件包:

make

要测试结果,请运行:

make check

安装这个软件包:

make install

LFS-Bootscripts包中的一些脚本依赖于 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, and xargs

简要描述

bigram

以前用来创建 locate 数据库。

code

以前用来创建 locate数据库。它是 frcode的前身。

find

在给定的目录及其子目录里面找符合条件的文件

frcode

updatedb 调用来压缩文件名列表,它使用的是前端压缩(front-compression),可以减小数据库4到5倍。

locate

扫描一个文件名称数据库, 可以列出在数据库中包含给定字符串或符合给定条件的文件或者目录名。

oldfind

find的旧版本,它使用不同的算法

updatedb

更新locate数据库。 它会扫描整个文件系统, 包括所有挂载的文件系统(除非设定参数禁止), 并且把每一个找到的文件和目录放到 locate 数据库里面。

xargs

可以用来将一个给定的命令应用到一个文件列表