grep -r foo *
sucht nicht nach Übereinstimmungen in versteckten Dateien oder Verzeichnissen, wird auch *
von der Shell erweitert, sodass Sie möglicherweise einen zu langen Fehler in der Argumentliste erhalten, wenn das aktuelle Verzeichnis viele Einträge enthält, oder andere Fehler oder Fehlverhalten, wenn die Der Name einiger Dateien oder Verzeichnisse beginnt mit einem Bindestrich.
Der Aufruf grep -r foo .
weist nicht die oben genannten Mängel auf
Aktualisiert:
Ein weiterer Unterschied: Greps Manpage (@ fedora17) sagt:
-r, --recursive
Read all files under each directory, recursively, following symbolic links only if they
are on the command line. ...
Es gibt auch einen Unterschied, wenn Sie diesen Befehl in einem leeren Verzeichnis ausführen:
$ grep -r foo *; echo $?
grep: *: No such file or directory
2
$ grep -r foo .; echo $?
1
$