Für eine einfache Dateisuche könnten Sie -l
von grep verwenden und -r
Optionen:
grep -rl "mystring"
Die gesamte Suche wird von grep durchgeführt. Wenn Sie Dateien nach einem anderen Parameter auswählen müssen, finden Sie natürlich die richtige Lösung:
find . -iname "*.php" -execdir grep -l "mystring" {} +
Die execdir
Die Option baut jeden grep-Befehl für jedes Verzeichnis auf und verkettet Dateinamen zu nur einem Befehl (+
).
Die Standardoption grep -l
(das ist ein kleines L) könnte dies tun.
Aus dem Unix-Standard:
-l
(The letter ell.) Write only the names of files containing selected
lines to standard output. Pathnames are written once per file searched.
If the standard input is searched, a pathname of (standard input) will
be written, in the POSIX locale. In other locales, standard input may be
replaced by something more appropriate in those locales.
Sie brauchen auch -H
nicht in diesem Fall.
Aus dem grep(1)
Manpage:
-l, --files-with-matches Suppress normal output; instead print the name of each input file from which output would normally have been printed. The scanning will stop on the first match. (-l is specified by POSIX.)