Попытайтесь выполнить эту команду, я думаю, что Вам понравится она
find /path/to/dir -type f -print0 | xargs -0 du -s | sort -rn | awk 'NR>5 {print $NF}' | xargs rm -f
Это распечатает все файлы под /path/to/dir
каталог, вычислите размер каждого файла, вида размером, извлеките названия всех (кроме лучших 5) файлы и передача это к rm
.
Для выполнения этого на каждом каталоге индивидуально Вы - более обеспеченное обертывание его в сценарии, как
#!/bin/bash
for DIR in `find /path -maxdepth 1 -type d`
do
find ${DIR} -type f -print0 | xargs -0 du -s | sort -rn | awk 'NR>5 {print $NF}' | xargs rm -f
done
Где /path
родительский каталог, который содержит все Ваши одноуровневые каталоги. Это выполнит то же самое, которое @TomNewton описывает путем отдельного выполнения рабочего процесса на каждом одноуровневом каталоге.