hi,
ich will folgendes mit einem Einzeiler tun: Ausgehend vom aktuellen
Verzeichnis sind alle Unterverzeichnisse mit dem Namen "save" zu finden
und alles was IN DIESEN "save"-verzeichnissen ist, soll gelöscht werden.
Die "save"-verzeichnisse selbst sollen erhalten bleiben.
BTW: Wie ich das mit mehreren Schritten hinbekomme ist mir klar, ich will
eigentlich eine Eizeiler mit find ... -exec ... haben und ohne Pipes.
Irgendwas pfiffiges halt, nicht so ne Lösung wie meine ganz unten :-)
Was ich probiert habe:
1.) find . -name save -type d
./SUNWdtdem/save
./SUNWdtdst/save
./SUNWdtezt/save
./SUNWdthe/save
./SUNWdthed/save
...
--> ok, das sind erstmal die verzeichnisse, die geleert werden sollen.
Jetzt müsste also beispielsweise "rm -fr ./SUNWdtdem/save/*" gemacht
werden.
2.) find . -name save -type d -exec ls -l {}/save/* \;
{}/save/*: No such file or directory
{}/save/*: No such file or directory
{}/save/*: No such file or directory
...
--> hab nur 'ls -l' statt 'rm -fr' genommen um mir nicht ins Knie zu
schiessen. Das Problem ist jedenfalls, daß hinter dem {} ein Leerzeichen
kommen muss, damit es von find mit dem gerade gefundenen "Ding" ersetzt
wird. So kann man natürlich keine Pfade zusammenbauen, wie es es
bräuchte. Any hints?
Reinhard
PS: ich habs so gemacht:
find . -name save -type d | while read i; do rm -fr $i/*; done
Das ist zwar noch nicht sicher bei Leerzeichen im Namen, die
konnte ich aber zum Glück ausschliessen. Aber irgendwie gefällt mir
das nicht :)