搜索文件的时候,大部分用户使用的第一个命令就是“the which”命令。但是,这样的命令只适用于那些包括在用户路径里的文件。如果一个文件不在用户的路径上,“the which”命令是不会找到目标文件的。
下一个选择就是找到命令本身,但是这是极具杀伤里。这样搜索需要时间,因为它要在每个目录,和每个文件下查找与要求的标准相匹配的内容。如果你拥有某种许可或是所有权进行搜索文件,这就相当不错了,但是当你使用名字搜索特定文件却又是相当耗时的。
另外一个选择就是slocate命令,它是大部分Linux供应商的标准。这种命令是通过数据库进行文件查找,利用cron job在夜间进行更新。
安装好slocate之后,你必须创建它所要搜索的数据库。创建数据库的时间会有所不同,这个视你的文件系统的大小而定。
使用以下命令,初始化数据库:
# slocate -c -u
在创建好数据库之后,创建一个cron job,每天晚上运行slocate(正如以上所示)更新数据库。
执行以下命令,找到文件:
$ slocatemyfile
不管此文件在系统的任何位置上,这个命令都能找到“myfile”文件。如果有相似的文件存在,比如“myfiles”或“test-myfile”,命令也会找到这些文件。
你能够传送许多选项到此命令。你也能够使用slocate,通过传递给它一个常规的表达式进行文件搜索,你也能够进行模糊搜索,而且你能限制返回结果的数量。