Как создать каталоги, содержащие index.html с помощью wget -recursive?

Я очень рад, как wget -r работает и загружает вещи.

Я создал локальный сервер, который обслуживает веб-сайт, и страницы выглядят следующим образом:

 http://localhost:8080/ http://localhost:8080/foo http://localhost:8080/bar http://localhost:8080/blog/ http://localhost:8080/blog/1-and-here-the-slug 

Когда я использую wget -r localhost:8080 он создает следующую структуру:

 . ├── static-files │  └── ... ├── bar ├── blog │  └── 1-and-here-the-slug ├── foo └── index.html 

bar , foo и 1-and-here-the-slug – это файлы. Я хочу, чтобы они были каталогами с одним файлом в них с именем index.html и все еще не нарушали пути к ресурсам (CSS, JS и т. Д.).

Я ожидаю чего-то вроде этого:

 . ├── static-files │  └── ... ├── bar │  └── index.html ├── foo │  └── index.html ├── blog │  ├── index.html // <---------- Also I want this one here to show the blog │  └── 1-and-here-the-slug │  └── index.html └── index.html 

Как я могу это сделать?

  • Разрешить имя файла с удаленного URL-адреса без загрузки файла
  • wget on Centos 7 Terminal как загрузить только текст без кода стиля сайта
  • curl download отлично работает, но wget не работает с помощью ssl
  • как wget файл github
  • Использование wget для получения имен файлов из текстового файла
  • Как сделать локальное зеркало веб-сайта с всплывающим окном подтверждения?
  • Сохранение нескольких URL-адресов в текстовые файлы
  • Как wget Youtube ужасный URL
  • One Solution collect form web for “Как создать каталоги, содержащие index.html с помощью wget -recursive?”

    http://localhost:8080/blog/1-and-here-the-slug

    bar, foo и 1-and-here-the-slug – это файлы. Я хочу, чтобы они были каталогами с одним файлом в них с именем index.html и все еще не нарушали пути к ресурсам (CSS, JS и т. Д.).

     ├── blog │ └── 1-and-here-the-slug │ └── index.html 

    Когда вы http://localhost:8080/blog/1-and-here-the-slug к http://localhost:8080/blog/1-and-here-the-slug текущий каталог – это blog , если вы переименовали эту страницу в blog/1-and-here-the-slug/index.html , ваш новый текущий каталог будет blog/1-and-here-the-slug . Таким образом, вы нарушите относительные пути внутри ресурса (CSS, JS), если таковые имеются. И нет способа решить этот вопрос без изменения внутреннего HTML-файла .

    Лучшее, что вы можете сделать, это переименовать файлы без расширения, чтобы иметь расширение html.

     ├── blog │ └── 1-and-here-the-slug.html 
    1. Сохраняя один и тот же каталог, вы можете использовать команду rename рекурсивно:

    Пример:

      find tmp -type f ! -name '*.*' | rename -nv 's/(.*)/$1.html/' 
    1. Вы можете создавать новые каталоги, но это нарушит относительные ресурсы, если таковые имеются

    Пример:

      find tmp -type f ! -name '*.*' | while read file; do mv $file $file.tmp; mkdir $file; mv $file.tmp $file/index.html; done 

    Вы можете играть, вставив <base href=""> в файл, чтобы указать хороший путь к ресурсам thr, но это будет очень тяжелая дорогостоящая работа

    1. ** Или лучше, используйте параметр -E wget

    EDIT: чтение страницы wget man дает вам два замечательных варианта

      -E --adjust-extension If a file of type application/xhtml+xml or text/html is downloaded and the URL does not end with the regexp \.[Hh][Tt][Mm][Ll]?, this option will cause the suffix .html to be appended to the local filename. -k --convert-links After the download is complete, convert the links in the document to make them suitable for local viewing. This affects not only the visible hyperlinks, but any part of the document that links to external content, such as embedded images, links to style sheets, hyperlinks to non- HTML content, etc. 
    Interesting Posts

    Установка GNU на OpenWrt

    Можно ли отправить ярлык на два приложения (например, Audacity и VLC) и в одно и то же время?

    Почему Firestarter говорит, что мой брандмауэр активен, но статус ufw показывает его как неактивный?

    Как добавить 100 пользователей из файла

    Отключение xscreensaver, когда firefox воспроизводит видео HTM5

    Настроить sendmail для отправки только

    Соответствие POSIX программы cd?

    Ошибка Netboot: неверный аргумент ядра

    Как прекратить зарядку аккумулятора до 100% в OpenBSD?

    Как использовать функцию ctags в vim с установленным cscope?

    Как предоставить права пользователю на сервер для использования программ

    Поиск всех файлов на основе частичного имени файла и отображения размера файла

    BTRFS сообщает об ошибках, но диски не работают. У меня были неудачные диски?

    Смотреть файл с использованием многопользовательского режима, даже если он не был создан

    Замена переменной, содержащей \ with sed

    Linux и Unix - лучшая ОС в мире.