findが複数の-execパラメータコマンドを一度に実行できることが分かった


findの-execパラメータで複雑なスクリプトを作成するのはいつも面倒で、通常私はこのように実行します.

find . -type f | while read f;
do 
echo $f;
# do something
done


偶然findが複数の-execを受け入れることができることを発見しました:

mkdir -p a/b/c/ #        
find . -name b -exec mkdir -p {}/1/2/3/ \; -exec touch {}/1/hello \;
ls a/b/1/ #          hello  
#       ,    。-exec       ,       。
find -name -b -exec touch {}/0/world \; -exec mkdir {}/0 \;

複数-execは、whileよりも便利な場合があります.