Я бы предложил использовать следующее:
find . -type f -exec stat --printf='%n %s\n' {} +
Основное повышение производительности происходит за счет отказа от запуска нового процесса для каждого файла, соответствующего find
. Это можно было бы сделать с помощью xargs
, но, поскольку find
вполне способен выполнять команды на основе файлов, которые ему соответствуют, мы могли бы также удалить еще один процесс.
С find
это делается с помощью -exec ... +
(а не -exec ... \;
), который будет порождать как можно меньше процессов (на основе максимального количества аргументов, поддерживаемых вашей ОС).
Более того, мы используем более базовый c stat
, а не du
для запроса размера файла, который ближе к тому, что вы сделали в вашем скрипте python.