Я не вижу, как ваше использование xargs таким образом является чем-то кроме медленного. В моем руководстве сказано, что -P - это количество процессов, а -n - количество аргументов. Нет специального значения для -P0
, так что, вероятно, оно игнорируется (или, если оно учитывается, вы получаете ноль процессов, что объясняет 24 часа ничегонеделания!) А -n1
гарантирует, что вы получите один exec(2) для каждого имени файла, что является максимально медленным.
Я сомневаюсь, что распараллеливание этой работы поможет вам многого добиться. Я бы подумал, что достаточно будет
$ echo filenames ... | xargs rm -rf
exec. Вы можете поэкспериментировать со значениями типа -P4
, если хотите. не ограничивая количество аргументов командной строки, вы минимизируете вызовы /bin/rm
и позволяете ему последовательно проходить через ваш дисковый кэш.