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