1

bashFedora16でバージョン4.2.28を使用していextglobます。オプションが設定されています。一致*.hまたは*.cpp使用しているすべてのファイルを一覧表示しようとしていますls *(h|cpp)が、コマンドは次を返します。

[agnel@damien cadcore]$ ls *(h|cpp)
ls: cannot access *(h|cpp): No such file or directory

現在のディレクトリに実際にいくつか.h.cppファイルがあることを確認しました。私は何か間違ったことをしていますか、それともこれはバグである可能性がありますbashls

更新:ご回答ありがとうございます。使用*.h *.cppすると、必要なことができます。しかし、なぜextglob期待どおりに機能しなかったのかを知りたいと思います。

4

3 に答える 3

5

拡張グロブ*(pattern-list)は、次のパターンリストの0個以上のオカレンスに一致します。オプションリストの何かが後に続く任意の文字列とは一致しません。あなたが欲しい:

$ ls *.@(h|cpp)

これは何かに一致し、その後にピリオドが続き、その後に「h」または「cpp」が続きます

于 2012-06-08T13:33:56.477 に答える
4

あなたはただすることができるはずですls *h *cpp

于 2012-06-08T13:12:32.967 に答える
3

この場合、複雑なグロブは必要ないと思います。単に試してみてくださいecho *.h *.cpp

于 2012-06-08T13:11:50.073 に答える