Я хочу найти общее количество количества файлов в папке и всех ее подпапках.
Я хочу найти общее количество количества файлов в папке и всех ее подпапках.
Может быть что-то вроде
find . -type f | wc -l
р>
сделал бы трюк. Попробуйте выполнить команду из родительской папки.
Используйте команду tree
. Возможно, вам потребуется установить пакет tree
.
Он отобразит все файлы и папки в данной папке и в конце отобразит сводку.
Чтобы подсчитать файлы (даже файлы без расширения) в корневой папке текущего каталога, используйте:
ls -l | grep ^- | wc -l
Чтобы подсчитать файлы (даже файлы без расширения) рекурсивно из корня текущего каталога, используйте:
ls -lR | grep ^- | wc -l
Самый быстрый и простой способ - использовать 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
Если он еще не существует, вы можете получить его здесь . Р>
find -type f -printf . | wc -c
Не рассчитывайте выходные строки find, потому что имена файлов, содержащие 99 строк новой строки, будут считаться 100 файлами. Р>
Используйте эту команду для каждой папки в пути
for D in *; do echo $D; find $D -type f| wc -l; done
find выглядит быстрее, чем дерево, поэтому я использовал ниже, чтобы подсчитывать файлы в каждом каталоге текущего рабочего каталога (игнорируя файлы в CWD), позволяя каталогам иметь пробелы:
ls -d */ | while read dir_line
do
echo -n "$dir_line :"
find "$dir_line" -type f | wc -l
done
р>
Вы можете использовать find . | wc -l
find .
будет отображать все файлы и папки и содержимое вашего содержимого, начиная с текущей папки.
wc -l
подсчитывает результаты поиска
Я сам поеду с этим вариантом:
ls -alR | grep -c ^ -