Якщо синтаксичний розбір виводу ls
є небезпечним, оскільки він може зламатися на деякі фанки (пробіли,, \n
...), який найкращий спосіб дізнатися кількість файлів у каталозі?
Я зазвичай покладаюся на те, find
щоб уникнути цього розбору, але аналогічно find mydir | wc -l
буде порушено з тих же причин.
Я зараз працюю над Solaris, але шукаю відповідь якомога більш портативною через різні уніці та різні оболонки.
find
отримуватимете кількість файлів рекурсивно (використовуйте, -maxdepth 1
якщо цього не хочете. find mydir -maxdepth 1 -type f -printf \\n | wc -l
Потрібно обробляти спеціальні символи в імені файлу, оскільки вони ніколи не друкуються.