Я хотел бы смочь записать сценарий удара для автоматического обновления моих расширений MediaWiki, и я думаю, что буду использовать этот веб-сайт https://extdist.wmflabs.org/dist/extensions/, чтобы сделать так. Но поскольку Вы видите там, что каждое tarball имя файла имеет случайное (или таким образом, это появляется мне), комбинация букв и чисел после заключительного тире (-). Таким образом, то, что я хотел бы, является некоторым способом загрузить только файлы этим видом имени extname-REL1_25*.tar.gz
где * место, где подстановочный знак на имя вошел бы и extname
отсылает к расширению имя I want.
Нет, это невозможно с подстановочными знаками. Но в этой ситуации wget будет работать с рекурсивной загрузкой - https://unix.stackexchange.com/questions/25340/download-recursively-with-wget
Используйте расширение фигурной скобки с wget для загрузки нескольких файлов согласно шаблону.
Пример:
wget -c https://extdist.wmflabs.org/dist/extensions/GoogleDocTag-REL1_{22-45203b7,23-249c6f2,24-3186a71,25-10e101f}.tar.gz
Дополнительное -c
флаг продолжает загрузку, если это приостановлено или прервано от той же точки, где это было остановлено. -c
опция полезна, когда Вы загружаете большое количество файлов, и Вы хотите загрузить все файлы в пакете без прерываний.
Пример:
lynx -dump "https://extdist.wmflabs.org/dist/skins/" | awk '/http/{print $2}' | uniq >> list.txt
wget -c -E -H -k -K -p -e robots=off -i ./list.txt
Recursive Accept/Reject Options -A acclist --accept acclist -R rejlist --reject rejlist Specify comma-separated lists of file name suffixes or patterns to accept or reject. Note that if any of the wildcard characters, *, ?, [ or ], appear in an element of acclist or rejlist, it will be treated as a pattern, rather than a suffix. In this case, you have to enclose the pattern into quotes to prevent your shell from expanding it, like in -A "*.mp3" or -A '*.mp3'.
Пример:
lynx -dump "https://extdist.wmflabs.org/dist/skins/" | awk '/http/{print $2}' | uniq >> list.txt
wget -c -A "Vector*.tar.gz" -E -H -k -K -p -e robots=off -i ./list.txt
Оба -A
и -R
опции загружают все файлы и затем принятие и отклоняют опции, удаляют загруженные файлы, которые не соответствуют шаблону. Это ужасно неэффективно. Более быстрый способ сделать это состоял бы в том, чтобы сделать сопоставление с образцом на файле list.txt для удаления всех нежелательных файлов из list.txt прежде, чем загрузить что-либо.
Предположим, что Вы хотите загрузить все файлы с https://extdist.wmflabs.org/dist/extensions/, которые удовлетворяют следующие условия:
Предположение, что Вы уже сделали файл list.txt, который содержит все ссылки в https://extdist.wmflabs.org/dist/extensions/, Вы открываете list.txt в текстовом редакторе, который поддерживает сопоставление с образцом, и отфильтруйте содержание list.txt для соответствия строкам, имеющим строку 1_25
(который относится к версии 1.25), и затем отфильтруйте те результаты для соответствия строкам, имеющим эти ~20 расширений (номер 20 не важен), что Вы хотите загрузить. Затем запишите результаты в новый файл под названием new-list.txt (имя файла, new-list.txt не важен), и загрузите несколько файлов (~20 в числе в этом примере) использование new-list.txt после wget's -i
опция считать URL из локального или внешнего файла.
Дальнейшее совершенствование этого метода должно было бы сократить количество расширений для соответствия путем фильтрации содержания list.txt для соответствия расширениям, содержащим строки, которые соответствуют больше чем одному расширению, которое Вы ищете. Например, если строка wiki
соответствия несколько расширений, которые Вы ищете, можно отфильтровать содержание list.txt для соответствия wiki
и сэкономьте определенное время. В https://extdist.wmflabs.org/dist/extensions/существует пять ссылок, которые содержат обоих 1_25
и wiki
и можно найти все пять ссылок с двумя соответствиями шаблона.