Hallo Patrick,
Eine generelle Frage die sich mir dabei allerdings stellt ist, in wie
weit read buffert. Ich stelle mir gerade das Szenario vor, dass das was
innerhalb des Loops passiert evtl. mal ganz ganz lange dauern könnte.
Die Ausgabe von find läuft aber derweil schön weiter. Oder wird die
Ausgabe verzögert?
Soweit ich weiss, 'puffert' die die pipe ( '|' ) bzw. interne
Strukturen selbst, wenn man das so sagen kann. Wer kann uns hierbei
genaueres sagen?
Im Beispiel von Jochen ist der Ablauf etwas anders, dort läuft zunächst
find vollständig durch bis der Rest des Loops aktiv wird.
Sehe ich das richtig?
Oder sind meine Befürchtungen grundlos?
Kann das was verloren gehen?
Ich denke, dabei geht nichts verloren. Ein anderes problem bekommst
Du, falls Du innerlhalb der Loop Directories (nicht Dateien) löschst
oder verschiebst. Aktionen auf Dateien/Dirs unterhalb der verschobenen
kann das script nicht mehr bearbeiten..
> 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 kann auch -l <n> , um n-viele Zeilen auf einmal zu bearbeiten:
--max-lines[=max-lines], -l[max-lines]
Use at most max-lines nonblank input lines per command line;
max-lines defaults to 1 if omitted. Trailing blanks cause an
input line to be logically continued on the next input line.
Implies -x
(RH 9.0)
Grüsse markus
--
----------------------------------------------------------------------------
PUG - Penguin User Group Wiesbaden - http://www.pug.org