Я создал файл в моей домашней папке с именем filecnt
, который содержит следующие строки кода:
for d in *; do
if [[ -d $d ]]; then
echo `find $d -type f | wc -l` $d;
fi
done | sort -n -k1
Затем я изменил права доступа к файлу, чтобы разрешить выполнение:
chmod 755 ~/filecnt
Теперь из любого каталога я могу запустить ~/filecnt
чтобы увидеть список подкаталогов в текущем каталоге с их рекурсивным количеством файлов. Список отсортирован по количеству файлов (по возрастанию). Например:
0 access-logs
20 logs
187 etc
232 cache
694 tmp
30007 mail
48325 public_html
Вы можете сделать то же самое, просто выполнив следующую команду из CLI:
for d in *; do if [[ -d $d ]]; then echo `find $d -type f | wc -l` $d; fi done | sort -n -k1
Добавить -r
к последней команде sort
для сортировки по убыванию.
Чтобы получить более приятный вывод, вы также можете использовать следующий код в ~/filecnt
вместо кода в верхней части этого ответа:
echo "File Count Dir Size Directory"
echo "---------- ---------- -------------------------"
for d in *; do
if [[ -d $d ]]; then
echo `find $d -type f | wc -l` | awk '{printf "%10s ", $0;}'
echo `du -h --max-depth=0 $d` | cut -d\ -f 1 $1 | awk '{printf "%10s ", $0;}'
echo $d
fi
done | sort -n -k1
echo
Вывод выглядит так:
File Count Dir Size Directory
---------- ---------- -------------------------
0 0 access-logs
20 8.3M logs
187 4.8M etc
232 228K cache
694 23M tmp
30715 6.4G mail
48272 2.3G public_html