Du könntest mit find alle Dateien im Verzeichnis suchen und dann deine Befehle darauf anwenden.
Ergebnis 1 bis 10 von 11
- 05.12.2012, 21:50 #1
Einige Kommandos in mehreren Verzeichnissen ausführen
Ich befinde mich in einem Verzeichnis in dem sich weitere Verzeichnisse und Dateien befinden. Ich benötige ein Shell-Skript, das in all diesen Verzeichnissen (nicht rekursiv) ein paar Befehle ausführt. Hat jemand einen Tipp, wie ich das anstellen könnte. Alle meine bisherigen Versuche haben leider nicht funktioniert. Die Shell ist mir egal, bash, zsh, ...
- 05.12.2012, 23:18 #2
- 06.12.2012, 03:16 #3Code:
for fld in /fldr/a /fldr/sub/b /fldr/sub/deeper/c ; do pushd "$fld" >/dev/null; my_command_list; popd >/dev/null; done;
- 07.12.2012, 16:31 #4
@Phil: Mit find habe ich es schon probiert. Aus irgend einem Grund haben min- und maxdepth aber nicht die gewünschte Wirkung gezeigt. Dazu kommt, das dann noch die Liste der gefundenen Ordner abgearbeitet werden muss, sprich in jeden Ordner einmal rein um ein paar Kommandos auszuführen.
Beispiel:
$ tree
.
├── a3
├── aa/
├── bb/ii/
├── c6
├── cc/
├── dd/hh/
├── f1
├── f4
└── f5
Die Kommandos sollen in aa, bb, cc und dd ausgeführt werden. Die Dateien sollen ignoriert werden. ii/ und hh/ sollen ebenfalls ignoriert werden. Wenn ich die Ebene bis zu der das Skript laufen soll einstellen könnte wäre das natürlich schön, für den momentanen Anwendungsfall ist dies aber nicht nötig.
@Rastafari: Das Problem ist, das das Skript universell funktionieren soll. Wenn ich es immer im gleichen Dateibaum ausführen müsste würde ich es wohl auch so machen wie du es geschrieben hast. Die Namen und die Anzahl der Verzeichnisse ändert sich aber ständig. Wären die Namen vorher bekannt könnte man es z.B. auch so abkürzen: (cd /usr && ls; pwd; ls -lh)
So bleibt man im aktuellen Working Directory und führt die drei Kommandos im entfernten Ordner /usr aus.
- 07.12.2012, 17:36 #5Niederhelfenschwiler Beeriapfel
- Registriert
- 01.2010
- Beiträge
- 840
Code:for i in $(ls -d */) do cd $i # do something cd .. done
- Ein Benutzer fand diesen Beitrag hilfreich.
- 07.12.2012, 19:02 #6
- 08.12.2012, 21:16 #7
Es ist irgendein Ordner, nennen wir ihn "hallo". Darin befindet sich z.B. die in Posting #4 angegebene Ordner/Dateistruktur. Es können wie im Beispiel vier Ordner (aa, bb, cc und dd) sein, es können aber auch 300 Ordner sein. Weder die Ordner noch die Dateien sind nach irgendeiem Schema benannt auf das ich einen Einfluß hätte. Ich möchte nun in den angegebenen vier Ordnern eine Reihe von Kommandos ausführen.
@wdominik: Zeile 2: Syntaxfehler beim unerwarteten Wort `cd'
- 09.12.2012, 14:06 #8
Das "do" gehört auf eine neue Zeile - oder ein Semikolon davor.
- 11.12.2012, 21:45 #9
- 11.12.2012, 22:00 #10Niederhelfenschwiler Beeriapfel
- Registriert
- 01.2010
- Beiträge
- 840
Sorry, ich hätte es vorher testen sollen, dann wäre mir der Tippfehler aufgefallen.


zitieren

