Назад | Перейти на главную страницу

Как я могу загрузить несколько файлов, хранящихся в текстовом файле, с помощью curl и xargs?

Как я могу загрузить несколько файлов, хранящихся в текстовом файле, с помощью curl и xargs? Это мое последнее испытание:

cat listfile.txt | xargs curl -O

первый файл работает хорошо, но другие файлы просто выводятся на стандартный вывод.

Использование GNU Parallel http://www.gnu.org/software/parallel/ ты можешь сделать:

cat listfile.txt | parallel curl -O

GNU Parallel не только хорошо справляется со специальными символами, такими как '»и пробел, вы также получите дополнительное преимущество параллельной загрузки.

Посмотрите вводное видео о GNU Parallel: http://www.youtube.com/watch?v=OpaiGYxkSuQ

Я нашел решение:

cat ./../c | xargs -n1 curl -O

xargs разбивает stdin на пробелы и символы новой строки и сразу переходит в curl. Таким образом, curl вызывается только один раз с длинными аргументами.

n1 Параметр ограничивает количество передаваемых аргументов равным 1, поэтому curl будет вызываться несколько раз.

xargs не знает, что такое curl, поэтому не может определить, сколько аргументов он должен передать за один раунд. Итак, решение состоит в том, чтобы передать ему параметр -n1, как вы упомянули.