Wget com nome de arquivo diferente, mas com a mesma extensão

3

Eu preciso salvar o wget em uma pasta diferente, nome de arquivo diferente e mesma extensão, mas não tenho o nome do arquivo antes de fazer o download.

Por exemplo, digamos que eu tenha:

http://ge.tt/api/1/files/someFile/0/blob?download

e eu preciso baixá-lo para um id, "fj39ejd" na pasta downloads .

Qual é a melhor maneira de salvá-lo em:

/path/to/downloads/fj39ejd.[extension it had before downloading]

Algum conselho sobre como posso conseguir isso?

    
por rtainc 17.06.2013 / 22:54

2 respostas

0

Na verdade, eu criei duas formas plausíveis de fazer isso:

a) Você pode salvá-lo na pasta " fj39ejd " que se parece com:

downloads/fj39ejd/theFileNameThatWasBeing.Downloaded

ou b) Você pode criar uma pasta tmp , que, em um loop while, verifique se ela contém um arquivo contendo " fj39ejd " e, em seguida, explode , obtendo a extensão . Este, no entanto, é um pouco caro e a conexão pode expirar.

    
por 17.06.2013 / 23:32
0

Se você quiser que o arquivo local tenha o nome escolhido pelo servidor, use wget --content-disposition --trust-server-names .

Se você deseja que a extensão escolhida pelo servidor tenha um nome escolhido localmente, terá que renomear depois. A maneira mais fácil é criar um diretório vazio, chamar wget nesse diretório e renomear o arquivo que foi criado para o que você deseja.

dir="$(TMPDIR=$PWD mktemp -d)"
(cd dir && wget --content-disposition --trust-server-names 'http://ge.tt/api/1/files/someFile/0/blob?download')
set "$dir/"*
mv "$1" "../fj39ejd.${1#$dir/*.}"
rmdir "$dir"
cd ..
    
por 18.06.2013 / 01:47