Re: Cygwin und FreeBSD, war - [RE: Ordner leeren (nicht löschen)]

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Tue, 5 Jun 2007 12:25:32 +0200 (CEST)

Timm Wimmers wrote:
> Oliver Fromme schrieb:
> > $ find -d /masterfolder -depth +0 -type f -print0 | xargs -0 rm
> > $ find -d /masterfolder -depth +1 -type d -print0 | xargs -0 rmdir
>
> Das sieht wirklich sexy aus.
>
> Deine Beispiele laufen hervorragend - auf einem FreeBSD. :-|

Wie gesagt, find(1) gehört zu den Kommandos, die von UNIX
zu UNIX leicht unterschiedliche Syntax haben. Solaris
z.B. hat ein sehr spartanisches find-Kommando, das fast
nur die Optionen und Primaries implementiert, die der
Standard (POSIX bzw. XPG4) festlegt. Wenn man auf Nummer
Sicher gehen und portable Skripte schreiben will, muss man
sich auf diesen Standard einschränken, dem aber leider
zahlreiche nützliche Funktionen fehlen.

Die GNU-Fraktion und die BSD-Fraktionen haben eine Reihe
nützlicher Erweiterungen, die aber teilweise auch nicht
miteinander kompatibel sind und sich stellenweise unter-
scheiden. Im Zweifelsfall hilft da immer ein Blick in die
Manual-pages (die es ja auch unter Cygwin geben sollte).

Speziell kennt GNU-find (das unter Cygwin verwendet wird)
keine Option -d und keinen Primary »-depth <n>«, dafür aber
»-depth« (statt -d) und -mindepth/-maxdepth. Verwirrend
und blöd, aber ist nunmal so.

> Gleich auch mal zwei Bücher über Shells bestellt.

Da muss man auch ein wenig aufpassen. Es gibt Bücher, die
speziell für die bash sind (auch wenn's nicht im Titel
gesagt wird), da bash die Standard-Shell unter Linux ist,
und zwar _nur_ unter Linux. FreeBSD's /bin/sh liegt von
den Features her irgendwo zwischen einer klassischen
Bourne-Shell (wie sie z.B. Solaris als /bin/sh hat) und
einer ksh. Übrigens ist die Manual-page der sh(1) durch-
aus nicht besonders schwer zu lesen.

Du kannst natürlich eine bash unter FreeBSD aus der Ports-
Collection installieren, aber ich würde davon abraten,
Skripte zu schreiben, die bash-spezifische Features ver-
wenden, da die dann halt wieder nicht portabel sind.

Wenn man komplexere Dinge machen will, sollte man ohnehin
keine reine Skriptsprache verwenden, sondern eher in die
Richtung der Programmiersprachen oder »Hybride« schielen,
wie z.B. Python.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
"We, the unwilling, led by the unknowing,
are doing the impossible for the ungrateful.
We have done so much, for so long, with so little,
we are now qualified to do anything with nothing."
        -- Mother Teresa
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 05 Jun 2007 - 12:26:46 CEST

search this site