Cuando no pasa ningún nombre de archivo a ack, funciona en un conjunto de archivos predeterminado incorporado que excluye los archivos binarios no reconocidos. Si pasa nombres de archivo, busca en todos los archivos que pasa. Esto explica la diferencia entre ack foo
y ack foo **
.
ack 1
En ack 1.x, use la bandera -a
para decirle a ack que no omita archivos cuyo tipo no reconoce.
Puede crear un alias si desea ese indicador con mayor frecuencia: agregue la línea alias ack='ack -a'
en su ~/.bashrc
o ~/.zshrc
. Si configura este alias y desea llamar ack
sin la opción, llame \ack
(la barra invertida desactiva la expansión del alias). Los scripts no se ven afectados por el alias, solo los shells interactivos.
Alternativamente, puede agregar la -a
opción a su ~/.ackrc
.
Las coincidencias en archivos binarios se mostrarán como "coincidencias de prueba de archivo binario1". No hay forma de deshabilitar este comportamiento sin modificar el propio Ack (al menos agregar un complemento).
ack 2
En ack 2.0, la -a
opción ha sido eliminada. Lo que puede hacer en su lugar es definir un tipo que coincida con todos los archivos, y usar la -k
opción para hacer que ack incluya todos los archivos de ese tipo. Tenga en cuenta que los tipos de archivo se procesan en un orden impredecible, ya que esto provocará que un conjunto aleatorio de tipos binarios se procese de forma normal en lugar de como el tipo habitual.
ack --type-set='all:match:.*' -k foo
De esta forma, las coincidencias se imprimen incluso para archivos que de otro modo se verían binarios. Como se indicó anteriormente, puede agregar estas opciones a un alias o a su .ackrc
.