Si l'analyse de la sortie de ls
est dangereuse car elle peut casser certains caractères géniaux (espaces,, \n
...), quelle est la meilleure façon de connaître le nombre de fichiers dans un répertoire?
Je compte généralement sur find
pour éviter cette analyse, mais de la même manière, il find mydir | wc -l
se cassera pour les mêmes raisons.
Je travaille sur Solaris en ce moment, mais je cherche une réponse aussi portable sur différents unices et différents shells que possible.
find
vous obtiendrez le nombre de fichiers récursivement (utilisez -maxdepth 1
si vous ne le souhaitez pas. find mydir -maxdepth 1 -type f -printf \\n | wc -l
devrait gérer les caractères spéciaux dans le nom de fichier, car ils ne sont jamais imprimés en premier lieu.