Se analizzare l'output di ls
è pericoloso perché può rompersi su alcuni caratteri funky (spazi,, \n
...), qual è il modo migliore per conoscere il numero di file in una directory?
Di solito mi affido find
per evitare questo parsing, ma allo stesso modo, find mydir | wc -l
si romperà per gli stessi motivi.
Sto lavorando su Solaris in questo momento, ma sto cercando una risposta il più portatile possibile tra diversi sistemi e shell.
find
riceverà il numero di file in modo ricorsivo (utilizzare -maxdepth 1
se non lo si desidera. find mydir -maxdepth 1 -type f -printf \\n | wc -l
dovrebbe gestire i caratteri speciali nel nome del file, in quanto non vengono mai stampati in primo luogo.