Stefans Wiki



Einen beliebigen Befehl rekursiv durch die Verzeichnisse ausführen

Problem

Viele Shell-Programme bieten von sich aus schon die Möglichkeit an ihre Arbeit rekursiv durch alle Verzeichnisse, vom aktuellen oder angegebenen Verzeichnis, zu erledigen. Leider stösst man immer wieder auf Programme die diese Möglichkeit nicht enthalten.

Ziel

Mit Hilfe eines Scriptes sollen alle Verzeichnisse vom aktuellen aus durchsucht werden. In jedem Verzeichnis soll dann ein beliebiges Programm ausgeführt werden können.

Lösung

tracedir

 1: #!/bin/sh
 2:
 3: trace() {
 4:     for DIR in *; do
 5:         if [ -d "$DIR" ]; then
 6:             echo
 7:             echo "$DIR:"
 8:             echo ======================================================================
 9:
10:             cd "$DIR"
11:             trace
12:             cd ..
13:
14:             echo
15:             echo "Zurück in $PWD:"
16:             echo ======================================================================
17:         else
18:             $COMMAND
19:         fi
20:     done
21: }
22:
23:
24: if [ $# -eq 0 ]; then
25:     echo Fehler: Kein Programm angegeben.
26:     echo Benutzung: tracedir [Programmname]
27: else
28:     COMMAND=$1
29:     trace
30: fi
unix/shell/einen_beliebigen_befehl_rekursiv_durch_die_verzeichnisse_ausfuehren.txt · Zuletzt geändert: 24.03.2011 22:05 (Externe Bearbeitung)
Quelle: http://stefanjahn.de/unix:shell:einen_beliebigen_befehl_rekursiv_durch_die_verzeichnisse_ausfuehren
Webseite: http://stefanjahn.de