Использование команды Grep без указания определенного каталога [закрыто]

Напишите fsck /dev/sdax(зависит от зараженного диска "sda1,sda2 etc") И затем введите После этого он задаст вам много вопросов для редактирования просто введите Да и после этого перезапустите его.

1
23.06.2016, 15:07
2 ответа

Ответ Дженни является самым общим. Вы должны быть в состоянии найти то, что вам нужно, с помощью

grep -r -i '^[[:space:]]*LoadModule' /etc/apache2

. Чтобы быть педантичным, вы должны также использовать grep и отметить любые директивы include, которые находятся вне структуры каталогов apache2.

Для этого вы можете попытаться получить список файлов, которые открывает apache2ctl -t , чтобы проверить конфигурацию, примерно так:

APACHE_HTTPD='ltrace -s4096 -e open@libapr* apache2' apache2ctl -t 2>&1 |
  cut -d\" -sf2 |
  grep -v /dev/ |
  sort -u |
  xargs -rd '\n' grep -i '^[[:space:]]*LoadModule'
1
27.01.2020, 23:19

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

sudo grep searchstring /*

поиск всех файлов непосредственно под корнем. (Что, вероятно, не то, что вам нужно.)

Edit: GNU grep на самом деле может искать рекурсивно, так что вы могли бы сделать

sudo grep -r searchstring /

Во втором случае вы неправильно поняли, как работает find. -type требует аргумента, указывающего ему тип файла для поиска, и простое добавление "grep" после этого ничего не дает. Однако вы можете указать ему выполнить команду для каждого найденного файла, и это, вероятно, то, что вы искали. Например, так:

sudo find / -type f -exec grep -l searchstring {} \;

Символ {} означает "имя файла", а \; означает "команда выполнена".

3
27.01.2020, 23:19

Теги

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