回答:
直接相当するものは
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 >
ほとんどの場合特定の意味を持つコマンドライン環境では悪い習慣です。単にfilename
FILENAMEを使用して強調することをお勧めします。ほとんどの人は理解しますが、より少ないかよりも大きい記号を押すべきではないことを理解していない場合、害を及ぼす可能性があります。
<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'
。