6.32. Findutils-4.2.27

Findutils 包含查找文件的工具,既能即时查找(递归的搜索目录,并可以显示、创建和维护文件),也能在数据库里查找(通常比递归查找快但是在数据库没有及时更新的情况下,结果并不可靠)。
预计编译时间:0.2 SBU
所需磁盘空间:12 MB

6.32.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 -e 's/find:=${BINDIR}/find:=\/bin/' /usr/bin/updatedb
    

6.32.2. Findutils 的内容

  • 安装的程序:
    • bigram, code, find, frcode, locate, updatedb, xargs
  • 简要描述:
    • bigram:以前用来创建 locate 数据库。
    • code:以前用来创建 locate 数据库。它是 frcode 的前身。
    • find:在一个目录和其子目录里面找符合条件的文件
    • frcode:被 updatedb 调用来压缩文件名列表,它使用的是前端压缩(front-compression),可以减小数据库4到5倍。
    • locate:扫描一个文件名称数据库,可以列出在数据库中符合条件的文件或者目录。
    • updatedb:更新 locate 数据库。它会扫描整个文件系统,包括所有挂载的文件系统(除非设定参数禁止),并且把每一个找到的文件和目录放到 locate 数据库里面。
    • xargs:可以在一系列文件上运行同一个命令
下一节:Flex 软件包包含一个能生成识别文本模式的程序的工具。
预计编译时间:0.1 SBU
所需磁盘空间:8.4 MB