usando o wget para fazer o download do site com URLs com diferenciação de maiúsculas e minúsculas para o Windows

0

Eu usei o Gnuwin32 wget para baixar manuais do emacs com este comando (demora cerca de 30 minutos):

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

os manuais baixados parecem bem, exceto por um problema, o Windows não faz distinção entre index.html e Index.html, então wget faz o download dos dois no mesmo caminho no Windows. Por exemplo,

link

e

link

são URLs diferentes e ambos são baixados para

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

Existe uma maneira de contornar isso?

Atualização:

exemplo alternativo que não leva 30 minutos (demora apenas 30 segundos)

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

com --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
    
por Jisang Yoo 10.07.2012 / 23:43

1 resposta

1

O subsistema Win32 no Windows não consegue distinguir entre arquivos que diferem apenas no nome. Entender todas as implicações do que acabei de escrever requer muita pesquisa sobre os aspectos internos do Windows.

Para resumir, todo programa no Windows é executado sob algum "subsistema". Um subsistema é um "stack" de espaço do usuário localizado no topo do kernel que possui um conjunto comum de APIs e bibliotecas.

Existem apenas três subsistemas: POSIX, Win32 e OS / 2. OS / 2 está obsoleto e provavelmente não funciona. O Win32 é o que 99,9999% de todos os programas (incluindo os que fazem parte do Gnuwin32 e do Cygwin) são executados. POSIX é o que os Serviços para UNIX (SFU) são executados.

Como você torna o Windows 7 totalmente sensível a maiúsculas e minúsculas em relação ao sistema de arquivos? tem algumas boas respostas e algumas respostas ruins. Ignore os detritos sobre as configurações do registro; isso é tudo bobagem. O comentário relevante é o comentário "update" de venimus.

Simplificando, a única maneira de executar um programa no Windows que possa distinguir corretamente entre arquivos cujos nomes diferem apenas no caso é usar o Subsistema para UNIX. Felizmente para você, o wget é um programa muito comum nesse subsistema, portanto, você deve instalar o SFU (se tiver licença para isso) e brincar com ele. Boa sorte.

    
por 10.07.2012 / 23:50

Tags