GNU Parallel을 사용하여 디렉터리를 체계적으로 정리하세요

GNU Parallel을 사용하여 디렉터리를 체계적으로 정리하세요

많은 수의 파일을 자체 디렉토리에 복사해야 합니다. 내가 가진 문제는 GNU 병렬로 복사할 때 순서대로 유지하는 것입니다. 예를 들어, 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

--rpland 를 사용하여 자신만의 대체 문자열을 정의한 다음 이를 mkdirand 에 사용할 수 있습니다 cp.

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

관련 정보