Re: Mal wieder find...
-----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-----
Reply to: