一部の命名変換を使用したサブディレクトリの一覧表示

一部の命名変換を使用したサブディレクトリの一覧表示

*-nom1名前に特定の文字列が含まれるか終了するサブディレクトリ(たとえば、、、*-nom2)から特定のコマンドを実行するスクリプトを作成したいと思います*-nom3。つまり

for dir in $(subs)
do
   // do something in this dir
done

私の質問は、これが私のサブディレクトリを一覧表示する方法なのか、そうでなければ最良の方法は何ですか?

subs = find -maxdepth 2 -type d -name '*-nom1'
&& find -maxdepth 2 -type d -name '*-nom2' 
&& find -maxdepth 2 -type d -name '*-nom3'

私の端末でテストしてみることができますが、Ubuntu正常に動作しているようです。

役に立つと、私のスクリプトは引き続き実行されますDebian

ベストアンサー1

私が考えることができる2つのこと

  1. 3つのfind通貨を1つにまとめる

    find -maxdepth 2 -type d \( -name '*-nom1' -o -name '*-nom2' -o -name '*-nom3' \)
    
  2. 外部ループをfind防ぐためにコマンド実行機能を活用for

    find -maxdepth 2 -type d \( -name '*-nom1' -o -name '*-nom2' -o -name '*-nom3' \) \
    -exec sh -c 'for d; do cd "$d"; cmd1; cmd2; cmd3; ...; done' sh {} + 
    

おすすめ記事