Se a análise da saída de lsé perigosa, pois pode quebrar alguns caracteres descolados (espaços \n, ...), qual é a melhor maneira de saber o número de arquivos em um diretório?
Geralmente confio findpara evitar essa análise, mas, da mesma forma, find mydir | wc -lserá interrompida pelos mesmos motivos.
Estou trabalhando no Solaris agora, mas estou procurando uma resposta o mais portátil possível em diferentes unidades e diferentes tipos de conchas.
findvai te número de arquivos de forma recursiva (use -maxdepth 1se você não quer isso. find mydir -maxdepth 1 -type f -printf \\n | wc -ldeve lidar com os caracteres especiais no nome do arquivo, como eles nunca são impressos em primeiro lugar.