Am Montag, 12. Juli 2004 06:47 schrieb Bertram Scharpf:
> Am Sonntag, 11. Jul 2004, 20:05:08 +0200 schrieb Jan Trippler:
> > if test `ls -a /voller/pfad | wc -l` -gt 2; then
> >   ..
> > fi
>
> Mir fällt da noch etwas ein, wie man verhindert, daß das
> ganze Verzeichnis gelesen wird:
>
>     test `ls -a /voller/pfad | head -n 3 | wc -l` -gt 2

Hm, was ist schneller? Ein neuer Subprozess (der head in der Pipe) 
oder ein ls über das ganze Verzeichnis? Der ls öffnet ja eigentlich 
nur die Inode des Verzeichnis und holt sich daher die 
dirent-Strukturen, oder?

Wäre im Zweifelsfall auszuprobieren.

> oder noch eleganter:
>
>     test `ls -A /voller/pfad | head -n 1`
>
> Meines wissens bricht `ls' ab, wenn die Pipe geschlossen
> wird.

Dann muss aber der test geändert werden:
test -z "`ls -A /voller/pfad | head -n 1`"

Jan

-- 
Linux-Quickies: http://www.jan-trippler.de
PingoS: http://www.pingos.org

Antwort per Email an