ackにファイル名を渡さない場合、認識されないバイナリファイルを除外する組み込みのデフォルトのファイルセットで動作します。ファイル名を渡す場合、渡すすべてのファイルを検索します。これは、違いを説明ack foo
してをack foo **
。
ack 1
ack 1.xでは、フラグ-a
を使用して、認識されないタイプのファイルをスキップしないようにackに指示します。
フラグを頻繁に使用する場合は、エイリアスを作成できalias ack='ack -a'
ます。~/.bashrc
またはに行を追加します~/.zshrc
。このエイリアスを設定しack
、オプションなしで呼び出したい場合は、呼び出します\ack
(バックスラッシュはエイリアスの展開を無効にします)。スクリプトはエイリアスの影響を受けず、インタラクティブシェルのみに影響します。
または、-a
オプションをに追加できます~/.ackrc
。
バイナリファイル内の一致は、「バイナリファイルtest1一致」としてリストされます。Ack自体を変更せずに(少なくともプラグインを追加して)この動作を無効にする方法はありません。
ack 2
ack 2.0では、この-a
オプションは削除されました。代わりにできることは、すべてのファイルに一致するタイプを定義し、-k
そのタイプのすべてのファイルをackに含めるオプションを使用することです。ファイルタイプは予測不可能な順序で処理されることに注意してください。これにより、バイナリタイプのランダムなセットが通常のタイプではなく通常のように処理されます。
ack --type-set='all:match:.*' -k foo
この方法では、そうでなければバイナリに見えるファイルに対しても一致が出力されます。上記のように、これらのオプションをエイリアスまたはに追加できます.ackrc
。