次のコマンドを実行しようとしていますが、引数が長すぎるというエラーが発生します。助けてもらえますか?
HOST# grep -rl 'pattern' /home/*/public_html/*
-bash: /bin/grep: Argument list too long
このエラーを無効にして、すべてのユーザーの public_html ディレクトリにある必要なパターン マッチング ファイルを grep する方法はありますか。同じサーバーに約 500 人以上のユーザーがいます。
ベストアンサー1
使用find
find /home/*/public_html -type f -exec grep -l 'pattern' {} +
この+
修飾子により、ファイル名が管理しやすいチャンクにグループ化されます。
ただし、 を使用すると実行できますgrep -r
。この場合の引数はファイル名ではなくディレクトリ名にする必要があります。
grep -rl 'pattern' /home/*/public_html
これには、数千のファイル名ではなく、500 以上の引数が含まれます。