У меня уже была похожая проблема, и я решил ее, создав туннель SSH с помощью Putty.
It seems to struggle with special characters in URLs, and quotes around the URL can't be used because the range {1..100} then appears to go unrecognized.
Это связано с тем, что этот синтаксис диапазона на самом деле не является функцией wget
, это функция вашей оболочки (, например. bash ), который расширяет аргументы перед передачей их в wget
, сравните:
$ echo abc{1..5}
abc1 abc2 abc3 abc4 abc5
или
$ ruby -e 'p ARGV' abc{1..5}
["abc1", "abc2", "abc3", "abc4", "abc5"]
Если указать аргумент в кавычках, оболочка не будет раскрывать его:
$ echo 'abc{1..5}'
abc{1..5}
Однако вы можете цитировать все, кроме диапазона:
$ echo 'abc'{1..5}'def'
abc1def abc2def abc3def abc4def abc5def
However, more importantly, wget has no support for naming the output dynamically
wget
не имеет функций для работы с такими диапазонами, потому что такие диапазоны не являются функцией wget
.
Так что нет, кажется, вы не можете сделать все это с помощью одной команды. Но вы все равно можете поместить его в один вкладыш:
for i in {1..100}; do curl "https://example.com/${i}.jpg" -o "output_${i}.jpg"; sleep 5; done
Инструменты UNIX спроектированы таким образом, чтобы быть достаточно целенаправленными, но при этом легко программируемыми. Некоторые из них создали множество вариантов для выполнения общих задач за один раз, но они никогда не смогут охватить каждый вариант использования самостоятельно.