make clean in mehreren Unterverzeichnissen

make clean in mehreren Unterverzeichnissen

Ich möchte mehrere (>20) Unterverzeichnisse mit bereinigen make clean. Ich habe an so etwas gedacht:

find ./ -type d -maxdepth 1 | xargs "make clean"

aber es funktioniert nicht. Können Sie mir bitte helfen?

Antwort1

Da Sie anscheinend nur in die unmittelbaren Unterverzeichnisse wechseln möchten, können Sie dies findganz vermeiden und jedes Verzeichnis einfach make cleanin einer Subshell ausführen, z. B.

for d in */; do (cd "$d" && make clean); done

Sie können bei Bedarf einen Test hinzufügen, um das Vorhandensein eines Makefiles zu prüfen . makeWenn kein Makefile gefunden wird (oder kein cleanZiel vorhanden ist), schlägt der Test jedoch ordnungsgemäß fehl.

verwandte Informationen