Я использовал Gnuwin32 wget для загрузки руководств по emacs с помощью этой команды (занимает около 30 минут):

wget --mirror --page-requisites --convert-links --no-parent --accept .html,.htm,.css,.js http://www.gnu.org/software/emacs/manual/

скачанные руководства выглядели нормально, за исключением одной проблемы, Windows не различает index.html и Index.html, поэтому wget загружает их по одному пути в Windows. Например,

http://www.gnu.org/software/emacs/manual/html_node/elisp/index.html

а также

http://www.gnu.org/software/emacs/manual/html_node/elisp/Index.html

разные URL, и оба загружают в

current_folder/www.gnu.org/ Программное обеспечение / Emacs / ручной / html_node / Elisp / index.html

Есть ли способ обойти это?

Обновить:

альтернативный пример, который не занимает 30 минут (только 30 секунд)

wget -P new --mirror --page-requisites --convert-links --no-parent --accept .html,.htm,.css,.js http://www.gnu.org/software/emacs/manual/html_node/ses/index.html

с --no-clobber

wget -P new-nc --no-clobber -r -l inf --page-requisites --convert-links --no-parent --accept .html,.htm,.css,.js http://www.gnu.org/software/emacs/manual/html_node/ses/index.html

1 ответ1

1

Подсистема Win32 в Windows не может различить файлы, которые отличаются только по имени. Понимание всех последствий того, что я только что написал, требует большого изучения внутренних особенностей Windows.

Короче говоря, каждая программа в Windows работает в некоторой "подсистеме". Подсистема - это "стек" пользовательского пространства, расположенный над ядром, который имеет общий набор API и библиотек.

Существует только три подсистемы: POSIX, Win32 и OS/2. OS/2 устарела и, вероятно, не работает. Win32 - это то, под чем работает 99,9999% всех программ (в том числе Gnuwin32 и Cygwin). POSIX - это то, что запускает Services For UNIX (SFU).

Как сделать Windows 7 полностью чувствительной к регистру файловой системы? есть хорошие ответы и плохие ответы. Проигнорируйте детрит о настройках реестра; это все фигня. Соответствующий комментарий является обновленным комментарием Venimus.

Проще говоря, единственный способ запустить программу в Windows, которая может правильно различать файлы, имена которых отличаются только в том случае, - это использовать подсистему для UNIX. К счастью для вас, wget - очень распространенная программа в такой подсистеме, поэтому вы должны иметь возможность установить SFU (если у вас есть такая возможность) и поиграть с ним. Удачи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .