Estou fazendo o download recursivo de arquivos de um diretório remoto usando wget
e quem criou as pastas e arquivos, usei caracteres especiais como è
ou Ó
, quando faço o download de um único especificando o caminho completo + nome do arquivo, o arquivo é baixado com o nome correto, mas quando eu tento fazer o download da pasta com todos os arquivos e diretórios usando a opção -r
, os nomes dos arquivos não são codificados ou decodificados corretamente.
Pelo que eu recolhi, o nome do arquivo é enviado como ascii
na solicitação, e tanto a máquina quanto o servidor têm UTF-8
codificação no $PATH
, por isso não deve ser um problema qualquer um.
Quando o wget cria o arquivo, o caractere è
(que usarei como exemplo) no nome do arquivo é salvo como 0
no código de caractere octal e aparece como è
. E isso só acontece quando eu faço o download dos arquivos recursivamente, se eu baixar esse arquivo usando a URL completa, o nome do arquivo aparece corretamente.
Passei uma quantidade razoável de horas pesquisando Q / A aqui e ali, e tentei tudo o que vi, desde a configuração de --local-encoding
e --remote-encoding
a UTF-8
, usando o --restrict-file-names=nocontrol
, etc.
As portas 21 e 22 estão fechadas, por isso não posso baixar os arquivos através de SCP ou FTP, muito provavelmente qualquer outro protocolo para baixar os arquivos vai dar o mesmo erro, mas estou aberto a qualquer não comum que Eu poderia usar.
Também o principal problema que tenho com isso, é que quando eu faço o download dos arquivos, quando tento copiá-los para uma pasta de backup, alguns dos arquivos às vezes me dão um erro de arquivo não encontrado devido ao nome do arquivo ser confuso acima, por enquanto estou usando o --restrict-file-names=ascii
e mantendo os nomes em ascii
como uma solução alternativa, mas preciso alterar a codificação para UTF-8
, também não consigo instalar na máquina nenhum aplicativo como convmv (pedidos do chefe).
Este é o comando que eu tenho usado para baixar os arquivos:
wget --keep-session-cookies --cookies=on --no-check-certificate --restrict-file-names=nocontrol --convert-links --no-parent -r <URL>
É assim que o nome do arquivo é salvo com o download de um único arquivo contra todos os arquivos recursivamente:
OT14-004 CEIP Pins del Vallès.vsd
OT14-004 CEIP Pins del Vallès.vsd
Estou usando uma máquina com esta distro CentOS Linux release 7.0.1406 (Core)
e com esta versão do wget GNU Wget 1.14 built on linux-gnu