2013-04-10 32 views
10

を見つけると同じように実行されませんコマンド検索は「.. CD」私はディレクトリ内の「ホーム」だと私は</p> <pre><code>find . -iname *.mov </code></pre> <p>このコマンドを実行し、それが</p> <pre><code>./root/movies/Corey/holtorf/Intro.mov </code></pre> <p>今、私を生成し、再帰的に

find . -iname *.mov 

今回は "Intro.mov"は結果に含まれていません。 これにはどのような理由がありますか? そして、現在のディレクトリで ".mov"で終わるすべてのファイルを再帰的に検索するコマンドは何ですか?ありがとう。

答えて

20

引数にワイルドカードを使用すると、シェルによって展開されます。これを防ぐには、 "* .mov"と記述する必要があります。

が見つかる前にシェルが展開し、がfindに引数を渡すと、ファイルのリストが取得され、元のパターンに基づいて検索されません。

16

ホームディレクトリが実際にシンボリックリンクである場合は、-followを追加する必要があります。パターンを引用しない場合は、シェルはそれを展開してからfindに渡します。

find . -iname "*.mov" -follow 
4

私はまだコメントできませんので、私はこれを回答として投稿します(私のお詫びを前もって)。あなたはgrepのいずれかを使用するか、

grep -r "*.mov" . 
を見つけることができ、再帰的に現在のディレクトリ内の特定の名前を持つファイルを検索するに :

あなたに利益をもたらす可能性のある情報に"find: paths must precede expression:" How do I specify a recursive search that also finds files in the current directory?

と追加この記事をチェックしてください

または大文字と小文字を区別しない検索のための

grep -ri "*.mov" . 

を見つけるためにまた
find . -type f -exec grep -l "*.mov" {} + 

役立ちリンクhttp://www.cyberciti.biz/faq/howto-recursively-search-all-files-for-words/

1

私が使用します。

grep -rn 'mov' . 

再帰的な数値検索

関連する問題