Ищите ВСЕ файлы с ack

Выборка ниже взята с начала главы 5, Управляя Что К NAT в этом руководстве по NAT с 2002.


      _____                                     _____
     /     \                                   /     \
   PREROUTING -->[Routing ]----------------->POSTROUTING----->
     \D-NAT/     [Decision]                    \S-NAT/
                     |                            ^
                     |                            |
                     --------> Local Process ------

"В каждой из точек выше, когда пакет передает, мы ищем, с каким соединением он связан. Если это - новое соединение, мы ищем соответствующую цепочку в таблице NAT для наблюдения, что сделать с ним. Ответ, который это дает, будет относиться ко всем будущим пакетам на том соединении".

14
23.07.2013, 03:44
2 ответа

По умолчанию Ack ищет шаблон во всех недвоичных файлах ниже текущего каталога.

Я полагаю, что более старые версии Ack перерыли бы двоичные файлы при передаче их --binary флаг. Этот флаг был удален все же. Вы можете использовать grep вместо этого.

grep -ar 'foo' .
6
27.01.2020, 19:51
  • 1
    Это не имеет никакого отношения к символьным ссылкам. Это имеет отношение к двоичным файлам! –  Tyilo 23.07.2013, 03:44
  • 2
    @Tyilo: Я изменил свой ответ. –   23.07.2013, 03:57

Когда Вы не передаете имени файла 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.

13
27.01.2020, 19:51
  • 1
    Это является довольно подлым, @Gilles. –  Andy Lester 27.07.2013, 20:55
  • 2
    @AndyLester спасибо, почему-a опция была удалена? "Это вызвано тем, что" в возврате на самом деле не объясняет, почему я не могу больше искать нераспознанные типы файлов. –  Yann Dìnendal 22.05.2014, 19:02
  • 3
    Поскольку 1.x's-a поведение, для поиска всех нераспознанных текстовых файлов, теперь значение по умолчанию в 2,0. –  Andy Lester 22.05.2014, 20:50

Теги

Похожие вопросы