という名前のすべてのファイルを探したいですfooxxxbarxxx
。これらすべてのファイルの共通点foo
は とbar
。
*foo*bar*
試してみましたが動作*foo**bar*
しません。
特に、これらのファイルへのソフトリンクを作成しようとしており、残りのコードはすでにより直接的な実行のために機能しています(すべてのサブフォルダが表示されますpath
)。
shopt -s globstar
ln -s /path/**/*foo*bar* .
ありがとう
答え1
シェルでは、このタイプのORシェル拡張オプションをbash
使用する必要があります。extglob
shopt -s extglob nullglob
その後、ワイルドカード
ln -s /path/**/@(*foo*bar*|*bar*foo*)
答え2
POSIX的に:
find /path -name '.*' -prune -o -name '*foo*' -name '*bar*' -exec sh -c '
ln -s "$@" .' sh {} +