저는 리눅스 초보자입니다.
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