grep -r foo *
ne recherche pas les correspondances dans les fichiers ou répertoires cachés, *
est également développé par le shell afin que vous puissiez vous retrouver avec une erreur de liste d'arguments trop longue lorsqu'il y a beaucoup d'entrées dans le répertoire actuel, ou d'autres erreurs ou mauvaise conduite si le le nom de certains fichiers ou répertoires commence par un tiret.
L'invocation grep -r foo .
n'a pas les défauts ci-dessus
Actualisé:
Autre différence: la page de manuel de grep (@ fedora17) dit:
-r, --recursive
Read all files under each directory, recursively, following symbolic links only if they
are on the command line. ...
Il y aura également une différence lorsque vous exécuterez cette commande dans un répertoire vide:
$ grep -r foo *; echo $?
grep: *: No such file or directory
2
$ grep -r foo .; echo $?
1
$