使用 GNU Parallel 保持目录有序

使用 GNU Parallel 保持目录有序

我需要将大量文件复制到它们自己的目录中。我遇到的问题是当我用 GNU parallel 复制它们时保持它们的顺序。例如,file_1.output 被放置在 dir_19 中。

除了文件顺序之外,这是迄今为止我所拥有的有效功能。

ls *.output > copy.list
parallel "mkdir cele_{}" ::: {1..10000}
parallel -k --link "cp {} cele_{}" :::: copy.list ::: {1..10000} 

有没有办法在不牺牲并行性的情况下做到这一点?

(灵感来自https://rbt.asia/g/thread/64890073/#64890111

答案1

您可以使用--rpl定义自己的替换字符串,然后将其用于mkdircp

ls *.output |  parallel --rpl '{dir} s/\.output$/_dir/' 'mkdir {dir} && cp {} {dir}'

相关内容