links.txt 파일에는 약 10개의 링크가 있습니다. 나는 그것을 통해 다운로드했습니다
cat links.txt | xargs -i --max-procs=4 bash -c "wget {}"
반복해서 하고 싶어요
while :
do
cat links.txt | xargs -i --max-procs=4 bash -c "wget {}"
done
while 루프의 다음 반복 전에 모든 하위 프로세스가 완료될 때까지 기다립니다. 하지만 사용 가능한 스레드가 있으면 다운로드를 계속하고 싶습니다(파일 시작 부분에서 URL 가져오기). 어떻게 하나요? 어쩌면 무한한 줄파이프를 만들 수도 있지 않을까요?
답변1
yes
문자열 매개변수를 허용하는 경우 :
yes links.txt | xargs cat | xargs -n1 --max-procs=4 wget
cat
Perl을 실행 하거나 링크별로 Perl을 실행하는 links.txt
것은 의미가 없습니다 ( 또는 행과 같은 쉘 코드로 해석되기를 bash
원하지 않는 한 ).links.txt
http://$host$path
http://evil;rm -rf /
파일이 충분히 작은 경우 다음을 수행할 수도 있습니다.
yes -- "$(cat links.txt)" | xargs -n1 -P4 wget