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 foo
e ack foo **
.
ack 1
In ack 1.x, utilizzare il flag -a
per 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 ~/.bashrc
o ~/.zshrc
. Se si imposta questo alias e si desidera chiamare ack
senza 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' -a
opzione 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' -a
opzione è stata rimossa. Quello che puoi fare invece è definire un tipo che corrisponda a tutti i file e utilizzare l' -k
opzione 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
.