Ack, похоже, не использует свой белый список

226
synapse

У меня ack2.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
Пожалуйста, не забудьте включить вашу ОС. Это Unix? Linux? OSX? Cygwin? Bash работает на Windows? terdon 10 лет назад 0

1 ответ на вопрос

4
lesmana

ack изменил поведение ядра с версии 2.0. Наиболее важным изменением является то, что по умолчанию ack 2 выполняет поиск во всех недвоичных файлах.

С сайта :

ОБЩИЕ ИЗМЕНЕНИЯ

Если селекторы не указаны, ack 1.x ищет только те файлы, которые он может сопоставить с типом файлов. ack 2.x, по ограничению, будет искать в каждом обычном недвоичном файле, который явно не игнорируется с помощью --ignore-file или --ignore-dir. Это похоже на поведение опции -a / - all в ack 1.x.

УДАЛЕННЫЕ ВАРИАНТЫ

Из-за изменения режима поиска по умолчанию параметры -a / - all и -u / - были удалены. Кроме того, была добавлена ​​опция -k / - known-types, чтобы заставить ack вести себя с поведением поиска по умолчанию ack 1.x.