再帰的にmake clean

30分プログラム、その141。カレントディレクトリ以下を再帰的にmake cleanするプログラム。

本当はRubyPerlあたりでやるつもりだったけれども、よくよく考えてみればシェルクリプトで十分なことに気がついたので。

使い方

$ make-clean
./code/atomduce
rm -f *.cmo *.cmi index.cgi *~

./code/disj/tools
rm -f *~ runner disj *.hi *.o

./docs/sotuken-meeting
rm -f *.dvi *.pdf *.log *.aux *~

ソースコード

#!/bin/sh
for i in $(find . -name 'Makefile')
do
    dir=$(dirname $i)
    echo $dir
    (cd $dir && make clean)
    echo ""
done
zshの場合

おまけ。もしもzshだったら。

for i in **/Makefile
  (cd $(dirname $i);make clean)

これをコマンドラインで試してから、シェルスクリプトを書きはじめた。