파일 그룹을 대상 폴더에 복사하고 싶습니다. 그러나 cp
각 작업에 대해 새 인스턴스를 생성할 필요가 없습니다 .
인수 형식은 cp
다음과 같습니다.
cp src_file1 src_file2 src_file3 dest_dir/
소스 파일 이름이 한 줄씩 나열된 파일이 있다고 가정하면 어떻게 할 수 있습니까?
파일 수가 매우 많기 때문에 아래 @Scott의 아이디어는 최대 명령줄 길이에 도달하므로 작동하지 않습니다.
나는 어떻게든 그 파일 이름을 파이프로 연결하여 cp
그 일을 하게 하고 싶습니다. xargs
또한 명령줄 끝에 확장을 추가하려고 하기 때문에 도움이 되지 않는 것 같습니다.
이것이 가능합니까?
감사합니다
답변1
filelist
다음을 포함하는 경우
apple
orange
banana
여기서 해당 디렉터리에 복사하려는 파일 이름은 다음 fruity
과 같습니다.
cp `cat filelist` fruity
/
결국에는 필요하지 않습니다 .
경고: 파일 이름에 공백이 포함된 경우(예: passion fruit
.
답변2
print0
찾기 시뮬레이션 :
cat filelist |perl -p -e 's/\n/\000/' |xargs -0 cp --target-directory dest_dir/
이 샘플 xargs -0
에는--target-directory