我有ack
2.04,它不仅搜索白名单中的文件,还搜索所有内容 - 日志、文本、标签。
$ echo 'needle' | tee haystack.txt haystack haystack.log
$ ack needle
haystack
1:needle
haystack.log
1:needle
haystack.txt
1:needle
$ ack --version
ack 2.04 (git commit 8f405b7)
Running under Perl 5.12.4 at /usr/bin/perl
没有,~/.ackrc
并ack --dump
生成一堆标记为默认的指令。除了手动让它忽略不需要的文件之外,还有其他想法吗?
答案1
自 2.0 版以来,ack 改变了一些核心行为。最重要的变化是默认情况下 ack 2 会搜索所有非二进制文件。
来自网站:
一般变更
当未指定选择器时,ack 1.x 仅搜索可映射到文件类型的文件。相比之下,ack 2.x 将搜索未通过 --ignore-file 或 --ignore-dir 明确忽略的每个常规非二进制文件。这类似于 ack 1.x 中 -a/--all 选项的行为。
已删除的选项
由于默认搜索行为发生变化,-a/--all 和 -u/--unrestricted 选项已被删除。此外,还添加了 -k/--known-types 选项,以使 ack 遵循 ack 1.x 的默认搜索行为。