Para excluir arquivos de classificação de índice, como aqueles com URL index.html?C=...
sem excluir nenhum outro tipo de arquivos index.html*
, há, de fato, uma especificação mais precisa possível. Experimente: -R '\?C='
Demonstração rápida
Configure um diretório vazio diferente, por exemplo
$ mkdir ~/experiment2
$ cd ~/experiment2
Em seguida, uma versão mais curta do seu comando, sem a recursão e os níveis, a fim de fazer um teste rápido de uma página:
$ wget --tries=inf --timestamping --convert-links --page-requisites --no-parent -R '\?C=' http://ioccc.org/2013/cable3/
Depois que o wget estiver pronto, ~/experiment2
não terá arquivos index.html?C=...
:
.
└── ioccc.org
├── 2013
│ └── cable3
│ └── index.html
├── icons
│ ├── back.gif
│ ├── blank.gif
│ ├── image2.gif
│ ├── text.gif
│ └── unknown.gif
└── robots.txt
4 directories, 7 files
Por isso, excluiu os diretórios redundantes index-sort index.html?C=...
, mantendo todos os outros diretórios index.html, neste caso apenas index.html
Implementar
Portanto, basta implementar o -R '\?C='
, atualizando a função do shell em ~/.bashrc
:
crwl() {
wget --tries=inf --timestamping --recursive --level=inf --convert-links --page-requisites --no-parent -R '\?C=' "$@"
}
Depois, lembre-se de testar em um novo terminal ou recomprar o bash para torná-lo efetivo:
$ . ~/.bashrc
Em seguida, experimente em um novo diretório, para comparação:
$ mkdir ~/experiment3
$ cd ~/experiment3
$ crwl http://ioccc.org/2013/cable3/
Garantia
- wget 1.14 e apenas para cima. Então, se o seu
wget -V
disser que é 1,13, isso pode não funcionar e você precisa realmente deletar os traços desagradáveis doindex.html?C=...
, ou tentar obter uma versão mais recente do wget. - funciona especificando que você deseja
-R
ou rejeitar um padrão, neste caso, páginas com?C=
padrão típico dasindex.html?C=...
versões deindex.html
. - no entanto,
?
é um curinga wget, portanto, para corresponder a um literal?
, você precisa escapar como\?
- não interrompa o wget. Porque parece que a maneira como o wget funciona com páginas da Web navegáveis é fazer o download primeiro, excluir depois, como se ele precisasse verificar se essas páginas têm links adicionais para rastrear. Então, se você cancelar isso no meio do caminho, ainda vai acabar com
index.html?C=
arquivos. Somente se você deixar o wget terminar, então o wget seguirá a sua especificação-R
e excluirá os arquivosindex.html?C=...
transferidos temporariamente para você