Re: leere verzeichnisse aus Shellskript löschen

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 14 Oct 2013 17:41:49 +0200 (CEST)

Christian Weisgerber wrote:
> Oliver Fromme <olli(at)lurza.secnetix.de> wrote:
>
> > Ja, und zum Glück hat BSD die "-delete"-Action von gnu-find
> > "geklaut". Anderenfalls wäre es erheblich aufwendiger.
>
> Für manche Werte von "BSD". OpenBSD find(1) kennt kein -delete.

Sorry, ich nahm an, OpenBSD hätte es ebenfalls. Die anderen
drei "großen" BSDs haben es jedenfalls (Free, Net, DragonFly).

> Und ich kann find|xargs schwerlich als "aufwendig" empfinden.

Doch, wenn man (sinnvollerweise) auch Verzeichnisse löschen
möchte, die erst _nach_ dem Entfernen eines darunterliegenden
Verzeichnisses leerwerden, dann wird es richtig knifflig.

Mit einem einfachen find|xargs ist das nicht getan. Man muss
mindestens iterativ herangehen (while-Schleife, solange bis
keine leeren Verzeichnisse mehr vorhanden sind) oder mit -exec
die Verzeichnisse einzeln mit rmdir(1) löschen, was nicht
sonderlich effizient ist, je nach Situation.

Mit -delete dagegen klappt das quasi "einfach so".

> "-delete" ist ein Hack, bei dem Vorsicht geboten ist:

Ja, find(1) hat schon einige Hacks und Kompatibilitätskrücken
akkumuliert (wie viele andere Tools auch), wobei "-delete"
eher noch zu den nützlicheren gehört. Man muss natürlich
wissen, dass -delete automatisch -depth bzw. -d bewirkt (was
ja sinnvoll ist).

Ich persönlich sehe es zwar auch eher kritisch, wenn Tools mit
Optionen und Funktionen überladen werden, wenn man die gleiche
Aufgabe auch durch Kombination mit anderen Tools erledigen
kann; letzteres entspricht ja der UNIX-Philosophie. Aber im
Falle von "-delete" würde ich aus o.g. Erwägungen ein Auge
zudrücken.

Gruß
   Olli

-- 
Oliver Fromme,  secnetix GmbH & Co. KG,  Marktplatz 29, 85567 Grafing
Handelsregister:  Amtsgericht Muenchen, HRA 74606, Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsreg.: Amtsgericht München,
HRB 125758, Geschäftsführer:  Maik Bachmann,  Olaf Erb,  Ralf Gebhart
FreeBSD-Dienstleistungen/-Produkte + mehr: http://www.secnetix.de/bsd
"Share your knowledge.  It is a way to achieve immortality." -- The Dalai Lama
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 14 Oct 2013 - 17:42:00 CEST

search this site