Это зависит от того, что на самом деле находится в foo
, или если вы сказали ack-grep
распознать его как type
# using ack-grep Version 1.92
mkdir junk; cd junk
echo 'hello' > wango
ack-grep hello # nothing found, because 'wango' is an unknown type
echo -e '#!/bin/bash\nhello' > wango
ack-grep hello # found, because '#!/bin/bash` identifies a known type
wango
2:hello
echo 'hello' > wango
ack-grep -a hello # found, because '-a' selects all files (almost all)
wango
1:hello
От man ack-grep
ack-grep хорошо разбирается в файлах, которые ищет. Он знает об определенных типах файлов, основываясь как на расширении файла, так и в некоторых случаях на содержимом файла. Эти выборы могут быть сделаны с опцией --type.
Без выбора файлов, ack-grep ищет только файлы тех типов, которые он распознает. Если у вас есть файл с именем foo.wango, и ack-grep не знает, что такое файл .wango, ack-grep не будет его искать.
Опция -a указывает ack-grep выбирать все файлы независимо от их типа.
Некоторые файлы никогда не будут выбраны ack-grep, даже с -a, включая:
· Резервное копирование файлов: файлы, соответствующие # * # или оканчивающиеся на ~.
· Coredumps: файлы, соответствующие ядру.\ D +
Однако ack-grep всегда ищет файлы, указанные в командной строке, независимо от типа. Кроме того, указав опцию -u, будут выполняться поиск всех файлов.