我敢肯定,我对ack的文件/目录忽略默认设置有误解,但也许有人可以为我提供一些启示:

mbuck$ grep logout -R app/views/
Binary file app/views/shared/._header.html.erb.bak.swp matches
Binary file app/views/shared/._header.html.erb.swp matches
app/views/shared/_header.html.erb.bak: <%= link_to logout_text, logout_path, { :title => logout_text, :class => 'login-menuitem' } %>
mbuck$ ack logout app/views/
mbuck$

而...
mbuck$ ack -u logout app/views/
Binary file app/views/shared/._header.html.erb.bak.swp matches
Binary file app/views/shared/._header.html.erb.swp matches
app/views/shared/_header.html.erb.bak
98:<%= link_to logout_text, logout_path, { :title => logout_text, :class => 'login-menuitem' } %>

简单地调用没有选项的ack不能在.bak文件中找到结果,但是使用--unrestricted选项进行调用可以找到结果。据我所知,ack默认情况下不会忽略.bak文件。

更新

感谢以下有用的评论,这是~/.ackrc的新内容:

--type-add = ruby​​ = .haml,.rake
--type-add = css = .less

最佳答案

ack的独特之处在于它没有要忽略的文件类型黑名单,而是要搜索的文件类型白名单。

引用手册页:



(请注意,由于命名冲突,我使用的Ubuntu二进制文件称为ack-grep)
ack --help-types将显示您的ack安装支持的类型列表。

关于grep - ack错过了结​​果(与grep相比),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3038966/

10-14 05:59