我需要将大量文件复制到它们自己的目录中。我遇到的问题是当我用 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}
有没有办法在不牺牲并行性的情况下做到这一点?
答案1
您可以使用--rpl
定义自己的替换字符串,然后将其用于mkdir
和cp
。
ls *.output | parallel --rpl '{dir} s/\.output$/_dir/' 'mkdir {dir} && cp {} {dir}'