Quando non si passa alcun nome di file ack, funziona su un set predefinito di file che esclude i file binari non riconosciuti. Se passi nomi di file, cerca in tutti i file che passi. Questo spiega la differenza tra ack fooe ack foo **.
ack 1
In ack 1.x, utilizzare il flag -aper indicare a ack di non saltare i file di cui non riconosce il tipo.
Puoi creare un alias se vuoi quella bandiera più spesso: aggiungi la linea alias ack='ack -a'nel tuo ~/.bashrco ~/.zshrc. Se si imposta questo alias e si desidera chiamare acksenza l'opzione, call \ack(la barra rovesciata disabilita l'espansione dell'alias). Gli script non sono influenzati dall'alias, ma solo shell interattive.
In alternativa, puoi aggiungere l' -aopzione al tuo ~/.ackrc.
Le corrispondenze nei file binari verranno elencate come "Corrispondenze test1 dei file binari". Non è possibile disabilitare questo comportamento senza modificare Ack stesso (almeno aggiungendo un plug-in).
ack 2
In ack 2.0, l' -aopzione è stata rimossa. Quello che puoi fare invece è definire un tipo che corrisponda a tutti i file e utilizzare l' -kopzione per includere tutti i file di quel tipo. Si noti che i tipi di file vengono elaborati in un ordine imprevedibile, in questo modo un insieme casuale di tipi binari verrà elaborato come normale anziché come al solito.
ack --type-set='all:match:.*' -k foo
In questo modo le corrispondenze vengono stampate anche per file che altrimenti apparirebbero binari. Come sopra, puoi aggiungere queste opzioni a un alias o al tuo .ackrc.