Путаница в отношении подкаталогов?

У меня вопрос к count и рекурсивное отображение number из sub-directories, включая скрытые (invisible sub-directories). Я могу отображать подкаталоги рекурсивно, но меня смущают невидимые подкаталоги. Кроме того, я могу использовать только команды ls и wc для решения. Пожалуйста, не предлагайте команду 'find'. Мне нужно использовать только команды ls и wc.

До сих пор я пробовал следующие команды.

ls -1 | wc -l

ls -R | wc -l

ls -R | wc -c

ls -aR | wc -l

ls -aR | wc -c

Но все же я не нашел решения. Пожалуйста, просветите меня.

2
задан 17 November 2013 в 19:14

3 ответа

Используйте:

ls -lAR | grep '^d' | wc -l

Но вы должны иметь в виду: никогда не анализировать выходные данные ls ! В этом случае лучше использовать find, как в этот ответ .

См. Также man ls, чтобы понять, почему я использовал опции -l, -A и -R.

0
ответ дан 17 November 2013 в 19:14

По моему опыту find является лучшим инструментом для поиска файлов или каталогов - особенно рекурсивно и с включением точечных имен файлов.

find -mindepth 1 -type d | wc -l

Вы можете немного оптимизировать, если вы будете писать и считать только отдельные символы для каждого совпадения:

expr $(find -mindepth 1 -type d -printf 1 | wc -c) - 1

Если вы хотите включить рабочий результат в результат, установите -mindepth в 0 (или опустить его).

0
ответ дан 17 November 2013 в 19:14

Я просто перечитал вопросы и заметил, что он не хочет использовать find.

Я нашел два, которые, кажется, оба дают правильный ответ:

Первый:

ls -lR | grep ^d | wc -l

Второй:

ls -Rp | grep "/$" | wc -l
0
ответ дан 17 November 2013 в 19:14

Другие вопросы по тегам:

Похожие вопросы: