curl
possui a opção -o
, --output
que usa um único argumento indicando que a saída do nome do arquivo deve ser gravada em vez de stdout
. Se você estiver usando {}
ou []
para cercar elementos na URL (geralmente usada para buscar vários documentos), poderá usar #
seguido de um número no especificador de nome de arquivo. Cada variável desse tipo será substituída pela sequência correspondente ao URL que está sendo buscado. Para buscar vários arquivos, adicione uma lista separada por vírgula de tokens dentro do {}
. Se partes dos URLs a serem buscados forem números sequenciais, você poderá especificar um intervalo com []
.
Exemplos:
curl http://www.abc.com/123/{def}/{ghi}/{jkl}.mno -o '#1_#2_#3.mno'
Observe as aspas ao redor do argumento da opção (não é necessário, a menos que o nome do arquivo comece com uma das variáveis expandidas). Isso deve resultar no arquivo de saída def_ghi_jkl.mno
.
curl http://www.abc.com/123/{def}/{ghi}/{jkl,pqr,stu}.mno -o '#1_#2_#3.mno'
Isso deve resultar em arquivos de saída def_ghi_jkl.mno
, def_ghi_pqr.mno
e def_ghi_stu.mno
.
curl http://www.abc.com/123/{def}/{ghi}/[1-3].mno -o '#1_#2_#3.mno'
Isso deve resultar em arquivos de saída def_ghi_1.mno
, def_ghi_2.mno
, def_ghi_3.mno
.
Aqui está um truque de substituição do Bash
{$link:23: 23}
removerá " http://www.abc.com/123/ "${parameter:offset:length}
, etr
substituirá/
para_
.Então agora você pode usar facilmente com wget ou curl
Também podemos usar o awk, isso extrairá os três últimos arquivados da string de entrada:
fonte
O nome do arquivo que você precisa não pode ser derivado por
wget
si só; portanto, ele precisa ser manuseado por um script de shell:Ou se você gosta de uma linha:
fonte
Se você preferir enrolar, a maneira mais direta é:
filename: o nome do arquivo baixado
ID do arquivo: o ID do arquivo na visualização da web do Google Drive no formato https://drive.google.com/file/d/ ID / visualização do arquivo
fonte