-1

では、実行されgrep "str" *
たすべてのものをgrepすることを意味しますgrepか? そして、どちらが前者よりも多くの結果を持っている
かについて grep -r "str" .

4

4 に答える 4

1

を実行するgrep str *と、シェルは*現在のディレクトリ内のすべてのファイル名 (ドットで始まらない限り) に一致するように を展開し、そのファイルのリストをgrepコマンドに渡します。

を実行するgrep -r str .と、シェル自体には何も展開されません。ただし、このコマンドは、引数リストを調べて、すべてのディレクトリに再帰的に降りることによってgrep、オプションに反応します。-r

したがって、少なくとも 3 つの違いがあります。

  • grep -r隠しファイルを見つけます
  • grep -rサブディレクトリを通過します
  • grep -r多くのファイルを含むディレクトリでも機能します。その場合、コマンド ラインが長すぎるというエラー メッセージが表示されることがありますgrep str *
于 2013-04-17T07:12:33.660 に答える
0
grep  "str" * # search a string str in all files in current directly but not sub directories 
grep -r "str" . # search a string str recursively in cireent directory and in all sub directories in all file whose file name has a single character
于 2013-04-17T07:10:36.700 に答える
0
grep

パターンを検索します。最後の引数は検索するファイルです。

grep str *

現在のディレクトリ (ワイルドカードとして * に一致) 内のすべてのファイルをパターン "str" で検索します。

grep -r str .

現在のディレクトリから始まるパターン str を再帰的に (ディレクトリ内などで) 検索します (単一のドットは現在のディレクトリ、2 つのドットは前のディレクトリです)。

于 2013-04-17T07:09:38.817 に答える