Вопрос Найти количество файлов в папке и вложенных папках?


Я хочу найти общее количество файлов в папке и всех ее подпапках.


112
2018-04-08 11:55


происхождения




ответы:


Может быть что-то вроде

find . -type f | wc -l

сделал бы трюк. Попробуйте выполнить команду из родительской папки.


179
2018-04-08 12:06



Решение не будет работать с файлами, имена которых содержат новую строку. - user unknown
@Пользователь неизвестен: find . -type f -ls | wc -l - arrange
даже быстрее: find . -type f -print0 | tr -d -c '\0' | wc -c - arrange
@arrange: еще быстрее: find . -type f -printf . | wc -c - Я принимаю печать для своего решения вместо моего -exec echo. - user unknown
Имейте в виду, что это также учитывает скрытые файлы, начинающиеся с точки. Я считаю эту особенность, а не ошибкой, но это хорошо знать. - cgogolin


Использовать tree команда. Возможно, вам потребуется установить tree пакет.

Он перечислит все файлы и папки в данной папке и в конце отобразит резюме.


22
2018-04-08 12:09





Чтобы подсчитать файлы (даже файлы без расширения) в корневой папке текущего каталога, используйте:

ls -l | grep ^- | wc -l

Для подсчета файлов (даже файлов без расширения) рекурсивно из корня текущего каталога используйте:

ls -lR | grep ^- | wc -l

10
2017-11-12 20:39





Самый быстрый и простой способ - использовать tree, Его скорость ограничена вашим выходным терминалом, поэтому, если вы передаете результат на tail -1, вы получите немедленный результат. Вы также можете управлять тем, на каком уровне каталога вам нравятся результаты, используя -L вариант. Для цветного вывода используйте -C, Например:

$ tree share/some/directory/ | tail -1
558 directories, 853 files

$ tree -L 2 share/some/directory/ | tail -1
120 directories, 3 files

Если его еще нет, вы можете получить его Вот,


9
2018-01-15 13:20





find -type f -printf . | wc -c

Не считайте выходные строки find, потому что имена файлов, содержащие 99 строк новой строки, будут считаться 100 файлами.


4
2018-04-08 14:21



Имена файлов, содержащие новые строки, являются невероятно редким случаем. - DisgruntledGoat
@DisgruntledGoat: Таким образом, ошибку будет очень сложно найти. - user unknown


Используйте эту команду для каждой папки в пути

for D in *; do echo $D; find $D -type f| wc -l; done

2
2018-03-20 18:02





поиск кажется более быстрым, чем дерево, поэтому я использовал ниже для подсчета файлов в каждом каталоге текущего рабочего каталога (игнорируя файлы в CWD), позволяя каталогам иметь пробелы:

ls -d */ | while read dir_line do echo -n "$dir_line :" find "$dir_line" -type f | wc -l done


1
2017-07-21 09:47



Разбор вывода ls является очень плохая идея. - souravc
Отличный код, как я могу упорядочить выходные строки при увеличении или уменьшении количества файлов - nightcrawler