ファイルが2回印刷されるのはなぜですか?bash findを使用するとファイルが2回表示される
find . *.{h,cc} -maxdepth 1 -type f
./file7.h
./file8.h
./file9.cc
file7.h
file8.h
file9.cc
これは間違いありませんか?ファイルパターンを指定するにはどうすればよいですか?
ファイルが2回印刷されるのはなぜですか?bash findを使用するとファイルが2回表示される
find . *.{h,cc} -maxdepth 1 -type f
./file7.h
./file8.h
./file9.cc
file7.h
file8.h
file9.cc
これは間違いありませんか?ファイルパターンを指定するにはどうすればよいですか?
.
の下に最初に見つかったので、実際にはfind
に指定されたファイル名の下に2つあります。おそらく、-name
を使用して、ワイルドカードをエスケープすることを意味していました。
find *.{h,cpp} -maxdepth 1 -type f
これは多分に役立ちます。
thats not right – Mark
@マークなぜ?それは動作し、*。{h、cpp}はパスを示しているようですが、私は確信していません。 – renenglish
あなたはツリー全体を検索しています。 – Mark
find . -maxdepth 1 \(-name \*.h -o -name \*.cc \) -type f
あなたは、単に現在のディレクトリ内のファイルを探しているなら、なぜ単純に使用しない:使用
$ find . -maxdepth 1 -type f \(-name "*.h" -o -name "*.cc" \)
:
$ shopt -s expglob
$ ls *.*(h|cc) */*.*(h|cc)
は、そうでなければ、あなたがこのliek何かをしなければなりませんかっこでは最初の行を行い、次にそれを-type fと-maxdepthと組み合わせます。
これを-nameを含むように変更する必要がありますか? – Mark