%general-entities; ]> findutils &findutils-version;
&findutils-url;
Findutils-&findutils-version; Findutils <para>Findutils 软件包包含用于查找文件的程序。 这些程序能够递归地搜索目录树,以及创建、维护和搜索数据库 (一般比递归搜索快,但在数据库最近没有更新时不可靠)。</para> <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> <seglistitem> <seg>&findutils-ch6-sbu;</seg> <seg>&findutils-ch6-du;</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> <title>安装 Findutils 首先,禁用一个在某些机器上会无限循环的测试: sed -i 's/test-lock..EXEEXT.//' tests/Makefile.in 然后,进行 glibc-2.28 要求的一些修补: sed -i 's/IO_ftrylockfile/IO_EOF_SEEN/' gl/lib/*.c sed -i '/unistd/a #include <sys/sysmacros.h>' gl/lib/mountlist.c echo "#define _IO_IN_BACKUP 0x100" >> gl/lib/stdio-impl.h 准备安装 Findutils: ./configure --prefix=/usr --localstatedir=/var/lib/locate 配置选项的含义: --localstatedir 该选项将 locate 数据库的位置改为 /var/lib/locate, 以与 FHS 兼容。 编译该软件包: make 运行以下命令以测试编译结果: make check 安装该软件包: make install LFS-Bootscripts 软件包中的某些脚本依赖于 find。由于 /usr 在引导早期阶段可能不可用,需要将这个程序移动到根分区。 updatedb 脚本也需要进行修改, 以修正一个显式指定的路径: BLFS 及 BLFS 之外的一些软件包预期 find 程序在 /bin 中,因此要保证它被放置在那里: mv -v /usr/bin/find /bin sed -i 's|find:=${BINDIR}|find:=/bin|' /usr/bin/updatedb Findutils 的内容 安装的程序 code, find, locate, oldfind, updatedb, 以及 xargs 简要描述 code 曾经被用于创建 locate 数据库;是 frcode 的前身 code find 在给定目录树中搜索满足给定条件的文件 find locate 在文件名数据库中进行搜索, 报告包含特定字符串或匹配特定模式的文件名 locate oldfind 旧版的 find ,使用不同的算法 oldfind updatedb 更新 locate 数据库; 它扫描整个文件系统(包括当前挂载的其他文件系统, 除非被告知不这样做),并把找到的所有文件名加入数据库 updatedb xargs 可以将给定命令作用于一个列表中的所有文件 xargs