Первоначальный ответ был:
for file in *.html
do
html2text "$file" > "$file.txt" &
done
Знак & в конце команды указывает bash перевести команду в фоновый режим и вернуть управление в место вызова.
Не уверен, что он будет работать хорошо для тысяч файлов, так как это вызовет новый процесс для каждого файла.
Однако, поскольку OP попросил, чтобы это работало для миллионов файлов, это, очевидно, неосуществимо, так как это породило бы миллионы фоновых процессов, потенциально вешающих машину.
Что вам нужно понять, так это то, что обработка миллионов файлов БУДЕТ займет больше времени, в зависимости от ограничений вашего оборудования и ОС. Технически в миллион раз больше, чем в одном файле.
Причина, по которой приведенный выше ответ сработал для вас сразу на 100 файлов, заключалась в том, что вы немедленно вернули командную строку. Тем не менее, это не означает, что работа была завершена в этот момент, потому что все эти фоновые процессы могут работать до тех пор, пока они не завершатся, даже если вы можете сделать что-то еще.
Теоретически вы могли бы разделить список файлов на куски и работать на куски, но после тестирования этого подхода я не думаю, что вы получите конечный результат намного быстрее, чем параллельное выполнение.
Таким образом, исходя из количества файлов, которые вы должны обработать, я предложил бы работать параллельно, как вы сами выяснили, возможно, хотя и с существенной настройкой количества параллельных заданий.
Так что-то вроде этого должно работать:
find . -type f -name \*html > FLIST
parallel --a FLIST -j 1000 'html2text {} > {.}.txt'
Обратите внимание, это синтаксис OP-версии html2text для Python. Для вариантов использования, например. В дистрибутиве Ubuntu доступен бинарный пакет html2text, см. Предыдущее редактирование ответа.
Это сделает ваш html кусками по 1000 параллельных файлов и не будет использовать трубопроводы (которые иногда могут значительно замедлить работу).
Если это слишком медленно, попробуйте увеличить -j до, возможно, 10000 - но тогда вы рискуете столкнуться с ограничениями оборудования / операционной системы, из-за которых 10000 параллельных процессов порождаются все время.