Ниже я включил ответ на ваш вопрос, однако хочу подчеркнуть, что с этой командой нужно проявлять особую осторожность. Вывод вашего исходного awk
направляется в rm -rf
, это означает, что эта команда принудительно удаляет все перечисленные папки.
Убедитесь, что вы очень внимательно относитесь к тому, где вы запускаете это, потому что, если запускать в большинстве мест, это может вызвать серьезные проблемы или непоправимый ущерб системе.
find . -maxdepth 5 -type d -exec bash -c "echo -ne '{} '; ls '{}' | wc -l" \; -print0 | awk '$NF<=10' | xargs rm -rf
Вывод исходной команды передается в xarge rm -rf
, xargs
преобразует исходный вывод в аргументы для другой программы, в данном случае rm
.
Выдержка из справочной страницы для rm
для двух используемых коммутаторов:
-f, --force
ignore nonexistent files, never prompt
-r, -R, --recursive
remove directories and their contents recursively
Подключение напрямую к rm
не будет работать, поскольку не ожидает получения имен файлов или папок. в этом формате.
Для Debian и Ubuntu вы можете выполнить пробное обновление с помощью apt-get dist-upgrade -s
и найти новое устанавливаемое ядро. За исключением очень немногих случаев, это должно охватывать все.
Исключения, которые я могу придумать: