Answers:
grep -r foo *
不会在隐藏文件或目录中查找匹配项,还会*
被shell扩展,因此当当前目录中有很多条目时,您可能会遇到一个参数列表太长的错误,或者如果其他错误或不当行为,一些文件或目录的名称以连字符开头。
调用grep -r foo .
没有以上缺陷
更新:
另一个区别:grep的手册页(@ 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
$