curl
a la -o
, l' --output
option qui prend un seul argument indiquant la sortie du nom de fichier doit être écrit à la place de stdout
. Si vous utilisez {}
ou []
pour entourer des éléments dans l'URL (généralement utilisé pour récupérer plusieurs documents), vous pouvez utiliser #
suivi d'un nombre dans le spécificateur de nom de fichier. Chacune de ces variables sera remplacée par la chaîne correspondante pour l'URL récupérée. Pour récupérer plusieurs fichiers, ajoutez une liste de jetons séparés par des virgules à l'intérieur du {}
. Si des parties des URL à récupérer sont des nombres séquentiels, vous pouvez spécifier une plage avec []
.
Exemples:
curl http://www.abc.com/123/{def}/{ghi}/{jkl}.mno -o '#1_#2_#3.mno'
Notez les guillemets autour de l'argument option (non requis à moins que le nom de fichier ne commence par l'une des variables développées). Cela devrait aboutir au fichier de sortie def_ghi_jkl.mno
.
curl http://www.abc.com/123/{def}/{ghi}/{jkl,pqr,stu}.mno -o '#1_#2_#3.mno'
Cela devrait entraîner les fichiers de sortie def_ghi_jkl.mno
, def_ghi_pqr.mno
et def_ghi_stu.mno
.
curl http://www.abc.com/123/{def}/{ghi}/[1-3].mno -o '#1_#2_#3.mno'
Cela devrait se traduire dans les fichiers de sortie def_ghi_1.mno
, def_ghi_2.mno
, def_ghi_3.mno
.
Voici quelques astuces de substitution Bash
{$link:23: 23}
supprimera " http://www.abc.com/123/ " tel quel${parameter:offset:length}
, puistr
remplacera/
par_
.Alors maintenant, vous pouvez facilement l'utiliser avec wget ou curl
Nous pouvons également utiliser awk, cela extraira les trois derniers fichiers de la chaîne d'entrée:
la source
Le nom de fichier dont vous avez besoin ne peut pas être dérivé par
wget
lui-même, il doit donc être géré par un script shell:Ou si vous l'aimez en une seule ligne:
la source
Si vous préférez le curl, le moyen le plus direct est:
nom de fichier: le nom du fichier téléchargé
id fichier: l'identifiant du fichier dans la vue Web de Google Drive au format https://drive.google.com/file/d/ id fichier / vue
la source