回答:
直接相当するものは
find . -iname <filename>
<filename>大文字と小文字を区別せずに、現在のディレクトリとサブディレクトリで呼び出されるすべてのファイルとディレクトリをリストします。
findのバージョンがをサポートしていない-iname場合は、-name代わりに使用できます。とは異なり-iname、-name大文字と小文字が区別されることに注意してください。
<filename>ディレクトリではなく、というファイルのみを一覧表示する場合は、-type f
find . -iname <filename> -type f
ワイルドカードを使用する場合は、引用符で囲む必要があります。たとえば
find . -iname "*.txt" -type f
そうでない場合、シェルはそれを展開します。
他の人が指摘したように、次のこともできます。
find . | grep "\.txt$"
grep ワイルドカードよりも強力ですが、構文が異なる正規表現に基づいて行を出力します。
man findおよびman grepを参照してください。
<filename>入力のマーカーとして使用することは、< and >ほとんどの場合特定の意味を持つコマンドライン環境では悪い習慣です。単にfilenameFILENAMEを使用して強調することをお勧めします。ほとんどの人は理解しますが、より少ないかよりも大きい記号を押すべきではないことを理解していない場合、害を及ぼす可能性があります。
<filename>は多くのUNIXドキュメントの慣習であるため、人々がそれを知っていると便利だと思いFILENAMEますが、理解しやすいかもしれません。
find -iname <filename>DOSのように大文字と小文字を区別しないので、より良いです
一部のシェルls **/filenameではが許可されますが、これは非常に便利です。
shopt -s globstar; echo **/filenameはと同等find . -name "filename"です。zshでも動作します。
shopt -s globstar、おそらくあなたのために働くでしょう。再帰的グロビングは、一部のシェルでのみ使用可能な機能であり、デフォルトではオンにならない場合があります。
shoptコマンドはオプションを有効にしますglobstar on。今ではそれは魅力のように機能します。どうもありがとう。
あなたはこれを行うことができます
find . | egrep filename
find . -regextype posix-egrep -regex '.*filename.*'(そのegrep部分が重要かどうかはわかりませんがegrep、回答に使用したので、それを含めました)
grep正規表現を使用し、DOSコマンドはシェルワイルドカードを使用します。
find . -name "*.*"、DOSのバックグラウンドに期待することはできません。グローブは認識できるほど十分に近いですが、正規表現はまったく新しい獣です。
*.*.*現代のDOS、つまりWindows CMD では何をしますか?どう*.*.*.*?
tree -if </your/path>または'pwd'、パスとしても使用できます
<filename>ワイルドカードが含まれている場合は、引用符を使用してください(例:)find . -name '*.txt'。