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 find
para evitar essa análise, mas, da mesma forma, find mydir | wc -l
será 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.
find
vai te número de arquivos de forma recursiva (use -maxdepth 1
se você não quer isso. find mydir -maxdepth 1 -type f -printf \\n | wc -l
deve lidar com os caracteres especiais no nome do arquivo, como eles nunca são impressos em primeiro lugar.