Respostas:
Use a ferramenta certa para o trabalho certo. Se você deseja procurar pelo nome do arquivo, use 'find':
$ # search for all *.txt file in current directory
$ find . -iname "*.txt"
find . | ack whatev.ext
ack -g REGEX
Imprimir arquivos onde o caminho relativo + nome do arquivo corresponde ao REGEX
[^/]*$
ao seu REGEX para pesquisar apenas no nome do arquivo
Concordo que faz sentido usar o find se você estiver apenas procurando por arquivos * .txt. No entanto, o ack possui recursos avançados de detecção de tipo de arquivo, para que você possa usar
ack -f --perl
que encontrará todos os arquivos Perl, com base no nome do arquivo (* .pm, * .pl, * .t e * .pod) e na linha shebang.