回答:
grep -r foo *
隠しファイルまたは隠しディレクトリで一致を検索しません。また*
、シェルによって展開されるため、現在のディレクトリに多くのエントリがある場合、引数リストが長すぎるというエラーが発生する可能性があります。一部のファイルまたはディレクトリの名前はダッシュ文字で始まります。
呼び出しにgrep -r foo .
は上記の欠陥はありません
更新しました:
別の違い:grepのmanページ(@ fedora17)はこう言っています:
-r, --recursive
Read all files under each directory, recursively, following symbolic links only if they
are on the command line. ...
空のディレクトリでこのコマンドを実行する場合にも違いがあります。
$ grep -r foo *; echo $?
grep: *: No such file or directory
2
$ grep -r foo .; echo $?
1
$