我敢肯定,我对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/