Costumo baixar tarballs com o wget do sourceforge.net.
Os arquivos baixados são nomeados, por exemplo, SQliteManager-1.2.4.tar.gz?r=http:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F&ts=1305711521&use_mirror=switch
Quando tento
tar xzf SQliteManager-1.2.4.tar.gz\?r\=http\:%2F%2Fsourceforge.net%2Fprojects%2Fsqlitemanager%2Ffiles%2F\&ts\=1305711521\&use_mirror\=switch
Eu recebo a seguinte mensagem de erro:
tar (child): Cannot connect to SQliteManager-1.2.4.tar.gz?r=http: resolve failed
gzip: stdin: unexpected end of file
tar: Child returned status 128
tar: Error is not recoverable: exiting now
Depois de renomear o arquivo para foo.tar.gz
a extração, funciona perfeitamente.
Existe uma maneira de não ser forçado a renomear cada vez que o arquivo de destino antes de extrair?
--force-local
deve ser adicionado antes dof
... quando eu tentei isso, estava me dando uma mensagem de erro sobre como não existe um arquivo como esse--force-local
. Talvez isso seja "não duh" demais, mas eu não reconheci o erro que cometi até 5 minutos depois.f
aceita um argumento que é o tarfile. Você não pode colocar--force-local
entref
e seu argumento, mas isso é padrão para todos os programas, não apenastar
e não apenas-f
. Você pode colocar--force-local
depoisf
, desde que também seja após o argumentof
.tar -cvzf ...
e nem penso no que cada bandeira faz 99% do tempo - é apenas reflexivo que é assim que eu faço o tar.gz.tar zxvf C:\Users\jdoe\Documents\tarfile.tgz --force-local
Ao fazer o download com
wget
, especifique o nome do arquivo de saída com a-O
opçãoIsso fará com que o arquivo seja salvo com o nome de arquivo fornecido e o problema ou renomeá-lo. E não, você não é o único que deseja que o sourcefourge não seja tão burro a ponto de distribuir arquivos com os parâmetros de URL anexados.
fonte
wget
é. Use o--content-disposition
sinalizador para salvar com o nome de arquivo especificado pelo servidor (mas cuidado com as implicações de segurança, pois o SourceForge pode gravar em um nome de arquivo arbitrário).Faça o download usando
Dessa forma, o wget será salvo com os nomes de arquivo corretos. Por padrão, ele usa o último componente no URL
Por exemplo
fonte
Como citado acima, a
:
(coluna) faztar
pensar que é um arquivo remoto. Então, precisamos reforçar o fato de que é local.Falhou
Solução
Explique o fato de ser um arquivo local anexando
./
(diretório atual) e citando corretamente:O aviso é devido ao fato de eu estar criando no diretório de origem.
fonte
Para arquivos já baixados, isso deve funcionar:
fonte