我更喜欢使用locate
命令进行搜索,但我不知道如何使用它进行部分搜索。
假设我想搜索包含单词libevent
的文件。我怎么能这样做?
答案 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