シェルのextglobシェルオプションを使用してfindを実行する方法はありますか?

シェルのextglobシェルオプションを使用してfindを実行する方法はありますか?

要するに、これら2つのファイルを見つけて階層を下に下げるprefix.extために本能的にこのような命令を書いたのです。prefix_suffix.ext

find /some/path -type f -name 'prefix?(_suffix).zip'

しかし、うまくいきません。

man find、内部的にはモードを「シェルモード」と呼ぶので、どのモードを使用するかを制御できるか、特にオプションを使用できるかどうか疑問に-name patter思います。extglob

ベストアンサー1

find「デフォルト」シェルパターンのみを使用してください。POSIXに規定されているように。 -style globをサポートしていませんextglob(GNU実装ではfnmatchGNU C ライブラリの実装はfnmatch拡張モードをサポートします。)。

GNUを使用している場合は、find正規表現を使用してフィルタリングできます。文書の関連部分詳細:

-regex '.*/prefix\(_suffix\)?\.zip'

デフォルトの正規表現型を使用するか、

-regextype posix-extended -regex '.*/prefix(_suffix)?\.zip'

EREで。

おすすめ記事