Как увеличить целое число в URL?

Как @Kusalananda сказал , вам не хватает -c, чтобы иметь возможность использовать встроенный -скрипт.

Но даже в этом случае никогда не встраивайте {}в шелл-код, это может привести к уязвимости, связанной с внедрением произвольной команды (подумайте, например, о файле с именем '$(reboot)'.mp3в вашем примере ). Вместо этого сделайте его аргументом встроенного скрипта (, предполагая, что вам здесь нужен встроенный скрипт, а cp— это просто пример ).

find... -exec sh -c 'cp "$1" /home/jason/gPodder/mp3' sh {} \;

(вам также не нужно bashтолько для этого. Ваш shподойдет так же ).

Или, что еще лучше, передать сразу несколько аргументов вcp:

find... -exec sh -c 'cp "$@" /home/jason/gPodder/mp3' sh {} +

С помощью GNU cpвы также можете это сделать:

find... -exec cp -t /home/jason/gPodder/mp3 {} +

0
12.04.2019, 17:54
1 ответ

Curl, если вы хотите использовать его для доступа к URL-адресам, поддерживает URL-адреса с диапазонами:

curl... 'https://bitcointalk.org/index.php?topic=840124.[0-4240]'

Где ...— другие параметры, которые вы можете использовать.

Синтаксис диапазона также допускает пошаговое приращение, отличное от 1. Например, чтобы получить каждый 20-й URL:

curl... 'https://bitcointalk.org/index.php?topic=840124.[0-4240:20]'

Дополнительную информацию см. в руководстве curl.

Чтобы сгенерировать список URL-адресов для отдельной обработки с помощью curlили какой-либо другой программы, рассмотрите возможность использования расширения скобок (, если ваша оболочка поддерживает это):

printf '%s\n' 'https://bitcointalk.org/index.php?topic=840124.'{0..4240}

С bashи некоторыми другими оболочками можно использовать приращение, как в '...URL...'{0..4240..20}.

Затем список может быть передан, например,. xargs, который может вызывать вашу curlили другую программу с URL-адресами в качестве аргументов.

3
28.01.2020, 02:22

Теги

Похожие вопросы