Как получить десять (под)каталогов с наибольшим количеством файлов

find . -type d | while read dir ; do num=`ls -l $dir | grep '^-' | wc -l` ; echo "$num $dir" ; done | sort -rnk1 | head


Эта команда выполняет следующие действия:

1. find . -type d: Находит все подкаталоги (директории) начиная с текущего рабочего каталога.

2. while read dir: Читает каждый найденный подкаталог по очереди.

3. num=ls -l $dir | grep '^-' | wc -l: Подсчитывает количество файлов в текущем подкаталоге.

4. echo "$num $dir": Выводит количество файлов и путь к подкаталогу.

5. done: Завершает цикл.

6. sort -rnk1: Сортирует результаты в обратном порядке (по убыванию) на основе количества файлов.

7. head: Выводит первые 10 строк, что соответствует 10 подкаталогам с наибольшим количеством файлов.

Альтернативы: Можно использовать команду du для подсчета размера каждого подкаталога, а затем сортировать их по размеру, чтобы найти каталоги с наибольшим объемом данных.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *