如何使用locate在Linux中进行部分搜索?

时间:2012-01-15 07:10:52

标签: linux search

我更喜欢使用locate命令进行搜索,但我不知道如何使用它进行部分搜索。

假设我想搜索包含单词libevent的文件。我怎么能这样做?

2 个答案:

答案 0 :(得分:2)

找到文件名的搜索。不是文件内容。

丑陋的方式是使用grep它将从/目录开始搜索。

grep -irn 'libevent' /

更好的方法是缩小可能存在此文件的可疑目录。假设这些目录的完整路径为/path/to/dir1/path/to/dir2等。然后调用以下命令。

for dir in /path/to/dir1 /path/to/dir2
do 
     grep -irn 'libevent' $dir
done

答案 1 :(得分:0)

locate命令不会搜索grep(和其他命令)等文件内容。它只是在文件路径中搜索。

locate通过使用文件路径的缓存索引来工作,此索引通常由updatedb实用程序更新。

附加物

搜索某些文件内部模式(内容)的有用方法是使用zsh或某些最新版本的bash扩展**文件模式的功能,比如说

grep foo ~/gee/**/*.[ch]

使用 zsh 在包含*.c的{​​{1}}下的所有名为*.h$HOME/gee/的文件中进行搜索。我发现这个功能非常有用,并且单独证明采用zsh作为我的交互式shell。使用其他shell,您可以键入更长的

foo