Назад | Перейти на главную страницу

Как найти определенную строку во всей системе (Linux)?

Мне нужно найти эту строку:

7z a -p

Я пробовал:

grep -iR "7z a -p" /

Но, похоже, через некоторое время он зависает с большим количеством:

grep: /sys/class/vc/vcs5/power/autosuspend_delay_ms: Input/output error
grep: warning: /sys/class/vc/vcsa5/subsystem: recursive directory loop
grep: /sys/class/vc/vcsa5/power/autosuspend_delay_ms: Input/output error
grep: warning: /sys/class/vc/vcs6/subsystem: recursive directory loop

ИЗМЕНИТЬ - Однако, похоже, это просто просмотр статических текстовых файлов. Кроме того, как насчет областей выполнения, памяти и процессов? т.е. вся система? например, для mysql:

ps aux | grep "mysql -u user -p"

показывает:

38164  4292 pts/0    S+   13:16   0:00 mysql -uodbcuser -px xxxxxxxx

Интересно, что ps aux скрывает пароль с помощью xxxxx. Я могу попробовать с 7zip, но он довольно быстрый, он должен запускаться одновременно с запуском команды ps aux, чтобы «поймать его».

Вы должны исключить такие каталоги, как /sys/, /proc/ и /dev/ из вашей команды:

grep -iR --exclude-dir='/sys' --exclude-dir='/proc' --exclude-dir='/dev' "7z a -p" / 

Предположительно, эта строка находится в файле сценария. Вы можете попробовать ack (он же ack-grep).

Он автоматически выберет только скрипт и исходные файлы, но вы можете настроить поиск во всех файлах с -a вариант (в версии 1). В версии 2 поиск по умолчанию выполняется во всех небинарных файлах.

Вы можете указать каталоги, которые следует игнорировать, или для поиска, чтобы сосредоточиться или игнорировать определенные типы файлов.

--[no]ignore-dir=name
--[no]elisp        .el
--[no]erlang       .erl .hrl
--[no]fortran      .f .f77 .f90 .f95 .f03 .for .ftn .fpp
for a few examples

Есть много опций, аналогичных опциям GNU grep так они будут знакомы.

Встроенная система фильтрации очень мощная и настраиваемая. Благодаря фильтрации поиск может выполняться значительно быстрее, чем поиск, использующий grep.

Монтаж не может быть проще.

документация

Вы можете выбросить ошибки с помощью

grep -iR "7z a -p" / 2> / dev / null