Hi Markus, Markus Schönhaber schrieb: > Patrick Schulz wrote: >> Jochen Hein schrieb: >>> Patrick Schulz <[EMAIL PROTECTED]> writes: >>>> Allerdings scheint es da ein Problem mit Namen zu geben, die ein >>>> Leerzeichen enthalten. >>>> Wie kann man das umgehen? >>> Etwa "find . -print0 | xargs -0 ..." als Schleifenkonstrukt. >>> Wird dann aber wieder unübersichtlich... >> Nö nicht unbedingt, solange es das tut was es soll. >> Ich habe allerdings einmal gelesen, dass xargs in nur eine gewisse Länge >> an Zeichen weitergeben kann. Diese Grenze sei durch Linux bestimmt. >> Stimmt das? > > xargs unterliegt natürlich auch der Einschränkung, daß beim Starten eines > anderen Prozesses die Länge der an diesen übergebene Argumente > (Kommandozeilenparameter) einen bestimmten Wert nicht überschreiten darf. > Genauso ist die maximal mögliche Länge eines Pfadnamens beschränkt. Die > konkreten Werte dürften sich in limits.h der Kernel-Sourcen finden lassen. > Vielleicht ist es das, was Du meinst. > > Da die maximale Pfadlänge aber deutlich geringer ist als die maximale Länge > der Parameterliste, dürften besagte Einschränkungen für das zur Diskussion > stehende Problem nicht von Bedeutung sein. >
Da bin ich mir nicht so sicher. Wir reden hier über mehrere Hunderttausend Dateien... Ich bin mir nicht sicher in wie weit das geschilderte Problem auch garantiert zu lösen ist. Dein Vorschlag über while read an die Lösung heran zu gehen, scheint zumindest in Bezug auf die Parameteranzahl kein Problem zu sein. Aber ich glaube, eben habe ich mir meinen Holzweg selbst erklärt. - Die Ein- und Ausgabe von xargs ist an sich ja keine Parameterliste, sondern ein Stream - Die Ausgabe des des find command ebenfalls In so fern kommt in keinem der Fälle das Problem mit der Parameteranzahl zum Tragen. Korrekt?
-- ---------------------------------------------------------------------------- PUG - Penguin User Group Wiesbaden - http://www.pug.org

