특정 25k 폴더를 다른 위치로 이동

특정 25k 폴더를 다른 위치로 이동

저는 리눅스 초보자입니다.

90,000개 폴더가 포함된 디렉터리에서 특정 25,000개 폴더를 다른 위치로 이동하려고 합니다. 폴더 이름이 있고 다음 명령을 시도했습니다.

cp -r /path/{folder1,folder2,...} /path

200개 폴더에서는 작동하지만 더 큰 숫자에서는 매개변수 목록이 너무 길어서 실패합니다.

다른 명령이 있거나 파일에서 읽는 것이 있습니까 text/csv?

답변1

있는 경우 text/csv파일의 모든 줄을 읽고 cp폴더 복사를 실행해야 합니다.

xargs또는 parallel또는 rush(​원천), 이 명령은 각 줄에 대해 특정 응용 프로그램을 실행합니다.

예를 들어, 내 listdir이 LIST_DIR.txt 다음과 같다면:

folder1
folder2
folder3
folder4

이 명령을 사용하여 폴더를 대상에 복사해야 합니다.

cat LIST_DIR.txt | rush 'cp -r /path/{} /path'

또는xargs

cat LIST_DIR.txt | xargs -I {} cp -r /path/{} /path

답변2

이러한 유형의 문제에 대한 일반적인 해결책은 다음을 사용하는 것입니다.xargs유닉스 유틸리티, 파일에 제공된 입력 인수 및/또는 표준 입력을 통해 명령을 반복적으로 실행합니다.

이것은많은 예제가 포함된 블로그 게시물사용xargs

관련 정보