Просто напишите {}
два раза в своей команде. Следующее будет работать:
$ echo test | xargs -I {} echo {} {}
test test
Ваша проблема в том, как команды вложены . Давайте посмотрим на это:
echo test | xargs -I {} echo {} && echo {}
bash выполнит echo test | xargs -I {} echo {}
. Если он будет выполнен успешно ssly, echo {}
выполняется. Чтобы изменить вложение, вы можете сделать что-то вроде этого:
echo test | xargs -I {} sh -c "echo {} && echo {}"
Однако у вас могут возникнуть проблемы, потому что этот подход может быть подвержен инъекции кода. Когда "test" заменяется кодом оболочки, он выполняется. Следовательно, вам, вероятно, следует передать ввод во вложенную оболочку с аргументами.
echo test | xargs -I {} sh -c 'echo "$1" && echo "$1"' sh {}
Чтобы отразить веб-сайт, вы используете поисковый робот .wget
(с флагом -m
)указан в списке, но wget
не предназначен для параллельных загрузок. aria2
, с другой стороны, не может сканировать веб-сайт, но загружает список URL-адресов. Вы должны знать список URL-адресов в начале.
Вам нужен инструмент, который может делать и то, и другое. В этом вопросе есть предложение использовать httrack:httrack url
будет зеркалировать url
с 8 одновременными подключениями.