On Mon, Sep 16, 2002 at 02:03:12PM +0200, Paolo Marchiori wrote: > Roberto Rotta, Mon, Sep 16, 2002 at 01:51:51PM +0200: > > > find /path/to/directory/* | wc -l > > Pero` forse cosi` conteggia anche le directory e i file nelle > > subdirectory > > $ ls -al | grep -v ^- | wc -l > > la madonna, TRE processi! > bastava aggiungere -maxdepth 0 -type f al find! > > io resto dell'idea che se non hai questo problema si possa fare un > ls -l e sottrarre 2 al numero dei links (quello dopo i perms). "ls -1" (o "ls -A1") e` _molto_ meglio: con "ls -l", ma anche con "find -type f", il sistema deve fare una chiamata stat() per ogni file che trova (deve leggersi l'inode del file per sapere se e` un file, quanto e` grande eccetera), e se i file sono davvero tanti la performance ne risente pesantemente (se poi magari il tutto e` via NFS...).
Nota ultrapedante: se il nome di un file contiene un \n (un "a capo") queste prove conterebbero il file 2 volte. Sia con find che con ls si possono "proteggere" i caratteri come \n. Read the fine manual... ;-) Ciao, /dev/null