9.2 搜索文件名数据库,不区分大小写

locate -i

在上一节中,测试locate命令时,使用haggard这个单词搜索任何名称中包含它的文件或目录,这样就找到了一组放在公共目录中的H. Rider Haggard的小说。结果如下所示:

  1. $ locate haggard
  2. .../txt/rider_haggard
  3. .../txt/rider_haggard/Queen_of_the_Dawn.txt
  4. .../txt/rider_haggard/Allan_and_the_Ice-Gods.txt
  5. .../txt/rider_haggard/Heu-Heu_or_The_Monster.txt

之所以能找到这些小说,是因为包含它们的目录名称中有haggard这个单词。但如果目录名称是H_Rider_Haggard,搜索就会失败,因为Linux系统默认是区分大小写的(如第1章所述)。明确这一点以后,可以加上-i选项,这样执行的就是不区分大小写的搜索,从而既可以找到路径中包含haggard的文件,也可以找到包含Haggard的文件(实际上,也包括HAGGARD、HaGgArD等)。

  1. $ locate -i haggard
  2. /txt/rider_haggard
  3. /txt/rider_haggard/Queen_of_the_Dawn.txt
  4. /txt/rider_haggard/Allan_and_the_Ice-Gods.txt
  5. /txt/rider_haggard/Heu-Heu_or_The_Monster.txt
  6. /txt/Rider_Haggard
  7. /txt/Rider_Haggard/King_Solomons_Mines.txt
  8. /txt/Rider_Haggard/Allan_Quatermain.txt

结果表明,这种方法找到的Haggard小说比第一次要更多。当需要让locate命令返回更多的结果时,要记得使用-i选项;否则,可能会遗漏很多你想要找到的重要文件和文件夹。

说明 有关H. Rider Haggard的更多信息,可以访问http://en.wikipedia.org/wiki/Rider_Haggard。他是个有趣的人,虽然他已经过世了,也可以读读这些信息。