-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Andreas Schmidt wrote: | irgendwie hab ich Probleme mit find. Wollte fuer eine Reihe DAteien | chmod setzen. | | man find meint, dass man per "-exec command;" ein Kmmano ausfuehren | lassen koenne. Habe gerade auch nochmal die Postings hier durchgesehen | (in letzter Zeit gab es ja einige Fragen zu find), aber dort war nichts | zu einer Aktion -exec zu finden; wurde alles nur mit -[print0|name] | | xargs gemacht. Hat das einen besonderen Grund? Ist -exec nicht mehr | ueblich?
Der Nachteil an -exec ist, daß für jede Datei, die find findet ein neuer Prozess gestartet wird, und das kann extrem langsam sein.
Beispiel:
in /foo liegen bar001 - bar999
Ein find /foo -type f -exec chmod +w {} \; erzeugt folgende Prozesse:
1.) find 2. bis 1000.) chmod +w bar00X
Ein find /foo -type f -print 0 | xargs -0 chmod +w erzeugt folgende Prozesse: 1.) find 2.) chmod +w bar001 bar002 bar003 bar004 ... 3.) chmod +w bar101 bar102 bar103 bar104 ...
Die Anzahl der Argumente, die chmod jeweils aufeinmal mitbekommt hängt von Deinem System ab, läst sich aber über --max-args begrenzen.
Aufgepaßt: xargs übergibt die reingepipeten Argumente zunächst mal als letztes, möchte man etwas wie find -exec sh -c "echo X{}X" \; machen, so geht das mit -i:
find /foo -type f -print0 | xargs -i sh -c "echo X{}X"
Alle Beispiele ungetestet, YMMV,
-billy.
- -- Meisterbohne Meisterbohne GbR, Küfner, Mekle, Meier Tel: +49-731-399 499-0 ~ eLösungen Söflinger Straße 100 Fax: +49-731-399 499-9 ~ 89077 Ulm http://www.meisterbohne.de/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.4 (MingW32) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFAMONL6twtlEPERx4RAlzbAJ9elT9mZvPQkXp1MVvaNP0McblYAQCgo3eF f7+CkOAw09Mrag3lY6jamZE= =CfRg -----END PGP SIGNATURE-----
--
Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/
Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)