Это зависит от того, что на самом деле в 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, будут выполняться поиск всех файлов.