このファイルが「検索」に表示されないのはなぜですか?


21

findwith を使用するとgrep、パターンに一致するファイルを見つけることができます。

# find | grep error
./solr-modifiedSolr4/SolrPhpClient/phpdocs/errors.html
./error_log
./includes/classes/error_log

ただし、find最初のファイルを単独で使用すると見つかりません。

# find . -name error*
./error_log
./includes/classes/error_log

なぜしないfind見つけerrors.htmlて使用されていないときにファイルをgrepfindこのファイルの表示にも使用されますか?

回答:


42

error*シェルが展開するため、引数を引用する必要があります。したがって、実際に実行しているのはfind -name error_log、シェルがそれを展開できるためです(error_log現在のディレクトリに名前の付いたファイルがあります)。

find . -name 'error*'

ユースケースの正しい呼び出しです。


12
代替の記述はfind -name error\*-押すべきキーが1つ少ない;)これは同じ効果があり*、文字によるアスタリスクとしてfindコマンドに渡され、シェルによって展開されません
zhenech

3
シェルで問題が発生した場合(コマンドラインを解釈し、すべての引数とパラメーターを実際のコマンドに渡す方法)、コマンドの前にコマンドを再実行しechoます。だから、あなたが実行したい場合echo find . -name error*には、出力されているだろうfind . -name error_log
カルロスCampderrós
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.