*-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つのこと
3つの
find
通貨を1つにまとめるfind -maxdepth 2 -type d \( -name '*-nom1' -o -name '*-nom2' -o -name '*-nom3' \)
外部ループを
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 {} +