「grep -r foo *」対「grep -r foo」。

「grep -r foo *」対「grep -r foo」。

grep -rを使用すると、*またはで検索できます。同じ内容を返すように見えますが、実際には同じですか?

「foo」を検索して書き込めるとしましょう。

grep -r foo *

または

grep -r foo .

誰かが。そして*を説明しようとしていますか?

ベストアンサー1

grep -r foo *隠しファイルやディレクトリでは一致するものが見つからず、*シェルで拡張されていないため、次のエラーが発生する可能性があります。パラメータリストが長すぎます。現在のディレクトリにエントリが多いときにエラーが発生した場合、または一部のファイルまたはディレクトリの名前がダッシュ文字で始まると、他のエラーや誤動作が発生します。

通貨に上記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
$

おすすめ記事