Bash Shell快速查找文件和内容

Bash Shell快速查找文件和内容,你想查找文件,但又不想等待冗长的 find 结束,或是需要查找包含特定内容的文件。

解决方案

如果你的系统中有 locate、slocate、Beagle、Spotlight,或者其他索引器,那就万事俱备了。没有的话,那就先来了解一下。

查找并运行命令中讨论过,locate 和 slocate 会查询系统的数据库文件(通常由 cron 作业负责编译和更新),几乎瞬间就能找到文件或命令。数据库文件的实际位置、会对什么对象进行索引、索引的频率都是视系统而定的。具体细节参见系统的手册页。以下是一个示例:

$ locate apropos
/usr/bin/apropos
/usr/share/man/de/man1/apropos.1.gz
/usr/share/man/es/man1/apropos.1.gz
/usr/share/man/it/man1/apropos.1.gz
/usr/share/man/ja/man1/apropos.1.gz
/usr/share/man/man1/apropos.1.gz

locate 和 slocate 并不索引文件内容,按内容查找文件中给出了相关的解决方案。

采用 GUI 的大多数现代操作系统配备了本地搜索工具,这些工具用索引器爬取、解析、索引用户个人空间(Unix 或 Linux 系统的用户主目录)中所有文件的名称和内容(通常还包含电子邮件),几乎可以瞬间搜到相关信息。此类工具的可配置性很好,均采用了图形化界面,而且针对单个用户运行。

讨论

slocate 保存了权限信息(以及文件名和路径),因此不会列出用户无权访问的文件。在多数 Linux 系统中,locate 只不过是指向 slocate 的符号链接而已;其他系统可能有单独的程序,或者干脆就没有 slocate。这两者都是命令行工具,或多或少地爬取和索引整个文件系统,但仅输出文件名和位置。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!