Вы можете использовать команду GNU parallel
для параллельного выполнения заданий. Это безопаснее, быстрее.
Я предполагаю, что вы пытаетесь скопировать несколько больших файлов из источника в место назначения. И для этого вы можете сделать это параллельно с приведенным ниже утверждением.
$ ls *|parallel -kj0 --eta 'cp {} /tmp/destination'
Поскольку мы использовали опцию -j0
, все файлы будут копироваться параллельно. В случае, если вам нужно уменьшить количество параллельных процессов, вы можете использовать -j<n>
, где <n>
- номер параллельного процесса, который будет выполнен.
Параллельно будет также собирать выходные данные процесса и сообщать о них последовательно (с опцией -k
), что не может сделать другой механизм управления заданиями.
Опция
--eta
предоставит вам подробную статистику происходящего процесса. Таким образом, мы можем знать, как мог завершиться процесс и сколько времени потребуется, чтобы закончить.