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 :)