grep
ディレクトリパスを指定せずにコマンドを使用できますか?
例:
$ sudo grep "filename" /
私もこれを試しました:
sudo find / -type f grep -l "filename"
まだ運がありません。
LoadModule
デフォルトでは、Apache2設定ファイルで指定された場所を検索しています。私はそれがここにあると思ったが、/etc/apache2/apache2.conf
そうではなかった。
答え1
Grepは、ユーザーがファイル名またはファイル名のリストを提供することを期待しています。引数としてパスを使用しません。したがって、最初の試みは次のように書くことができます。
sudo grep searchstring /*
ルートディレクトリのすぐ下のすべてのファイルを検索します。 (ご希望の内容ではない場合があります。)
編集する:GNU grepは実際に再帰的に検索できるため、次のことができます。
sudo grep -r searchstring /
2番目のケースでは、findの仕組みを誤解しました。-type
あなたが探しているファイルの種類を知らせるためのパラメータが必要で、その後に「grep」を追加するだけでは何もしません。ただし、探しているすべてのファイルに対してコマンドを実行するように指示できます。このように:
sudo find / -type f -exec grep -l searchstring {} \;
{}
「ファイル名」を意味し、\;
「コマンドが完了しました」を意味します。
答え2
Jennyの答えは最も一般的でした。必要なものが見つかるはずです。
grep -r -i '^[[:space:]]*LoadModule' /etc/apache2
もっと賢く言えば、apache2ディレクトリ構造の外側の "include"ディレクティブを見つけて記録しておく必要があります。
これを行うには、開いているファイルのリストをインポートして、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'