find . -type d -execdir du -sh '{}' ';' | grep -E "[0-9]+K" | sed 's/^[0-9\.]\+K[\t ]\+//' | tr "\n" "\0" | xargs -0 rm -rf
Команда find . -type d -execdir du -sh '{}' ';' | grep -E "[0-9]+K" | sed 's/^[0-9\.]\+K[\t ]\+//' | tr "\n" "\0" | xargs -0 rm -rf выполняет удаление всех папок размером менее 1 МБ из текущей директории и ее поддиректорий.
1. find . -type d ищет все папки (директории) в текущей директории и ее поддиректориях.
2. execdir du -sh '{}' ';' вызывает команду du -sh для каждой найденной папки, чтобы вычислить ее размер.
3. grep -E "[0-9]+K" фильтрует вывод так, чтобы остались только строки с размером папок в килобайтах.
4. sed 's/^[0-9\.]\+K[\t ]\+//' удаляет размер папок из выхода команды du, оставляя только имена папок.
5. tr "\n" "\0" заменяет переносы строк на символ нуля. Это нужно для правильной передачи имен папок в xargs.
6. xargs -0 rm -rf передает имена папок в команду rm -rf, которая рекурсивно удаляет папки и все их содержимое.
Альтернативной командой может быть использование команды find с опцией -size для фильтрации папок по размеру. Например, find . -type d -size -1M -delete.
