Hi Thomas! On Thu, 06 Sep 2007, Thomas Michalka wrote:
Am Donnerstag, 6. September 2007 07:39 schrieb Christian Brabandt:
On Wed, 05 Sep 2007, Thomas Michalka wrote:
Am Mittwoch, 5. September 2007 21:44 schrieb Christian Brabandt:
Hinreichend neue finds unterstüzen auch + anstelle von \;
[...]
Wenn ich das richtig verstehe, dann hängt find jeden gefundenen Dateinamen (base) an das Ende des Kommandos. Damit wäre ein cp <Filelist> <Zielpfad> in -exec nicht möglich, weil <Zielpfad> als DIRECTORY das letzte Argument von cp sein muß. Nur so läßt sich eine Liste von Dateien gemeinsam in ein Verzeichnis kopieren (man cp).
Tatsächlich. Irgendwie dachte ich, dass beide Versionen synonym zu benutzen sind. Also bleibt doch wieder xargs.
Nicht unbedingt, man kann find -exec doch immer noch auf die konventionelle Weise verwenden (ohne das '+' hinter {}). Siehe meine Antwort auf Dr. J. Vollmer von Heute, 17:51 Uhr.
Ja klar. Ich bezog mich darauf, nicht für jedes Argument einen extra Prozess zu forken. Aber wir bereits entdeckt, funktioniert das auch nicht mit xargs, wenn man mit -I arbeitet.
Außerdem stellt sich mir die Frage, ob man dann nicht auch gerade wieder die Situation hergestellt hat, die zur Frage eingangs der Diskussion führte, nämlich zu viele Argumente (bzw. zu lange Argumentliste) für cp.
Nein, find sorgt dafür dass ARG_MAX nicht erreicht wird.
Meine Version ist wohl etwas veraltet, weshalb das im meiner Manpage noch nicht steht.
Steht bei mir auch nicht direkt in der manpage, man kann es aber herauslesen: ,----[~$ man find |grep -A2 total ]- | -exec command {} + | [...] | each selected file name at the end; the total number of invoca- | tions of the command will be much less than the number of | matched files. The command line is built in much the same way | [...] | | ~$ find --version | GNU find Version 4.2.28 | Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION `---- Der Standard http://www.opengroup.org/onlinepubs/009695399/utilities/find.html erwähnt es auch
Ist das eine Umgebungsvariable oder eine Konstante in einem Quelltext von cp oder find?
Nein. Compileabhängige Variable des Kernels. Das wird in limits.h definiert. ,---- | ~$ getconf ARG_MAX | 131072 `---- Mit freundlichen Grüßen Christian -- hundred-and-one symptoms of being an internet addict: 242. You turn down a better-paying job because it doesn't come with a free e-mail account. -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org