curl
hat die Option, die ein einzelnes Argument annimmt -o
, --output
das angibt, in welche Dateinamenausgabe anstatt geschrieben werden soll stdout
. Wenn Sie Elemente in der URL mit {}
oder []
umgeben (normalerweise zum Abrufen mehrerer Dokumente), können Sie #
im Dateinamen- Bezeichner eine Zahl gefolgt von einer Zahl verwenden. Jede solche Variable wird durch die entsprechende Zeichenfolge für die abgerufene URL ersetzt. Um mehrere Dateien abzurufen, fügen Sie eine durch Kommas getrennte Liste von Token in das Feld ein {}
. Wenn Teile der abzurufenden URLs fortlaufende Nummern sind, können Sie einen Bereich mit angeben []
.
Beispiele:
curl http://www.abc.com/123/{def}/{ghi}/{jkl}.mno -o '#1_#2_#3.mno'
Beachten Sie die Anführungszeichen um das Optionsargument (nicht erforderlich, es sei denn, der Dateiname beginnt mit einer der erweiterten Variablen). Dies sollte zur Ausgabedatei führen def_ghi_jkl.mno
.
curl http://www.abc.com/123/{def}/{ghi}/{jkl,pqr,stu}.mno -o '#1_#2_#3.mno'
Dies sollte in den Ausgabedateien führen def_ghi_jkl.mno
, def_ghi_pqr.mno
und def_ghi_stu.mno
.
curl http://www.abc.com/123/{def}/{ghi}/[1-3].mno -o '#1_#2_#3.mno'
Diese in den Ausgabedateien führen sollen def_ghi_1.mno
, def_ghi_2.mno
, def_ghi_3.mno
.
Hier ist ein Bash Substitutionstrick
{$link:23: 23}
entfernen „wird http://www.abc.com/123/ “ ist${parameter:offset:length}
, danntr
ersetzt/
zu_
.So können Sie jetzt ganz einfach mit Wget oder Curl arbeiten
Wir können auch awk verwenden, dies extrahiert die letzten drei Felder aus der Eingabezeichenfolge:
quelle
Der von Ihnen benötigte Dateiname kann nicht von sich aus abgeleitet werden
wget
, daher muss er von einem Shell-Skript verarbeitet werden:Oder wenn Sie es als eine Zeile mögen:
quelle
Wenn Sie Curl bevorzugen, ist der direkteste Weg:
Dateiname: Der Name der heruntergeladenen Datei
Datei-ID: Die ID der Datei in der Webansicht von Google Drive im Format https://drive.google.com/file/d/ Datei-ID / view
quelle