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