Я бы использовал xargs из пакета GNU finutils:
xargs -P 1 cp -r -t dest_folder < file_with_paths.txt
-P 1
указывает xargs
запускаться только в подпроцессах одновременно, поскольку cp не очень хорошо работает параллельно cp
используется с -t
в качестве xargs
в качестве аргумента в конце команды
Эта команда будет запускать несколько cp, каждая с максимально возможным количеством папок в качестве аргумента.Если вы хотите контролировать, сколько папок копируется каждым процессором, используйте параметр -L
, например -L 999
.
Обратите внимание, что его можно комбинировать с ls -1 | head -n 100000
, если «file_with_paths.txt» нестроить заранее.