How can I download multiple files stored in a text file with curl and xargs? This is my last trial:
cat listfile.txt | xargs curl -O
first file works well, but other files are just output to stdout.
|
|
|
I found solution:
xargs splits stdin by spaces and newlines, and passes to curl at once. So curl called only once with long arguments.
|
||||
|
|
|
xargs doesn't know what curl is so it can't determine how many arguments it should pass in one round. So the solution is to pass a -n1 option to it as you mentioned. |
|||
|
|
|
Using GNU Parallel http://www.gnu.org/software/parallel/ you can do:
Not only does GNU Parallel deal nicely with special chars like ' " and space, you will also get the added benefit of downloading in parallel. Watch the intro video to GNU Parallel: http://www.youtube.com/watch?v=OpaiGYxkSuQ |
|||
|
|