Mailinglist Archive: opensuse-de (4565 mails)

< Previous Next >
Re: Wann ",',´,`
  • From: Jan.Trippler@xxxxxxxxxxx (Jan Trippler)
  • Date: Mon, 10 Mar 2003 19:10:53 +0000 (UTC)
  • Message-id: <20030310200543.B598@xxxxxxxxxxxxxx>
On Mon, 10 Mär 2003 at 11:49 (+0100), Sebastian Helms wrote:
Moin Andreas,

* Andreas Feile schrieb am 10 Mar 2003:
Sebastian Helms, Montag, 10. März 2003 09:40:

Die ` benutzt du, um einen Befehl (den
innerhalb der `) auszuführen und dessen Ausgabe als Rückgabe bzw.
als Wert zu erhalten, z.B. in VARIABLE=`pwd` (es gibt bessere
Beispiele).

Wozu brauche ich denn dann sowas wie xargs? Wie ich soeben probiert habe ist

find / -name test | xargs rm

Weil es sein kann, daß find (oder ein anderes Programm) so viele
Argumente zurückliefern, daß diese nicht alle über die Kommandozeile
übergeben werden können.

Das ist aber gerade in Verbindung mit find kein Argument:
find / -name test -exec rm {} \;

xargs ist hier eher ein Mittel zum Schonen der Systemressourcen,
weil im Gegensatz zum -exec nicht für jede gefundene Datei ein neuer
Prozess gestartet wird.

Siehe auch man xargs ... *g*

gleichbedeutend mit

rm `find / -name test`

Wenn es nur ein paar Dateien sind, kannst du auch die zweite
Variante nehmen.

Allerdings weiß ich nicht, wie das ist, wenn Sonderzeichen in den
Dateinamen sind. Da bietet sich find -print0 | xargs -0 an.

Und das ist der 2. gute Grund zur Verwendung von xargs ;-)

BTW: Diese *argument list too long* Fehler kann man auch mit
Schleifen umgehen:
statt: rm *
geht dann: for i in *; do rm $i; done

Jan


< Previous Next >
Follow Ups