Re: search'n replace über mehrere Files

From: Oliver Fromme <olli(at)secnetix.de>
Date: Fri, 20 Jul 2001 19:38:28 +0200 (CEST)

norbert.meissner(at)daimlerchrysler.com wrote:
> >for file in `find . -name whatever*` ; do
>
> Hm, diese Loesung kann funktionieren, muss aber
> nicht. Man sollte im Auge behalten, das das was
> zwischen den Graves steht, von der Shell expandiert
> wird.

Jein. "for" ist kein Befehl, sondern Shell-Metasyntax bzw.
built-in, und daher ist es von ARG_MAX nicht betroffen,
denn die Shell muß ja kein exec() machen. Obiges Kommando
sollte daher funktionieren (sofern man keine kaputte Shell
verwendet, die da noch ihre eigenen Limits mitbringt).
Zumindest haben weder zsh noch csh/tcsh oder »unsere« sh
ein solches Limit (außer natürlich verfügbarer Gesamtspei-
cher).

> Bei 10000 Dateien funktioniert das nicht mehr.

Doch. Probier's aus. Such Dir ein Verzeichnis, wo sich
die Länge aller Dateinamen zu mehr als ARG_MAX aufsummiert.

$ pwd
/home/olli
$ ls -R | wc
   10700 10934 185732
$ echo "`ls -R`" | wc
   10700 10934 185732
$ /bin/echo "`ls -R`" | wc
/bin/echo: argument list too long

Ich würde das vorgeschlagene Kommando allerdings aus ande-
ren Gründen nicht in dieser Form verwenden.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"All that we see or seem is just a dream within a dream" (E. A. Poe)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 20 Jul 2001 - 19:38:32 CEST

search this site