Ihr erster Befehl sollte ohne Leerzeichen funktionieren:
curl -T "{file1.txt,file2.txt}" ftp://XXX/ -user YYY
Beachten Sie auch das nachfolgende "/" in den obigen URLs.
Dies ist der manuelle Eintrag von curl zur Option "-T":
-T, --upload-Datei
Dadurch wird die angegebene lokale Datei an die Remote-URL übertragen. Wenn die angegebene URL keinen Dateiteil enthält, hängt Curl den lokalen Dateinamen an. HINWEIS: Sie müssen ein abschließendes / für das letzte Verzeichnis verwenden, um Curl wirklich zu beweisen, dass es keinen Dateinamen gibt. Curl geht davon aus, dass Ihr letzter Verzeichnisname der zu verwendende Remote-Dateiname ist. Dies führt höchstwahrscheinlich dazu, dass der Upload-Vorgang fehlschlägt. Wenn dies auf einem HTTP (S) -Server verwendet wird, wird der PUT-Befehl verwendet.
Verwenden Sie den Dateinamen "-" (ein einzelner Bindestrich), um stdin anstelle einer bestimmten Datei zu verwenden. Alternativ kann der Dateiname "." (ein einzelner Punkt) kann anstelle von "-" angegeben werden, um stdin im nicht blockierenden Modus zu verwenden, damit die Serverausgabe gelesen werden kann, während stdin hochgeladen wird.
Sie können für jede URL in der Befehlszeile ein -T angeben. Jedes -T + URL-Paar gibt an, was und wohin hochgeladen werden soll. curl unterstützt auch das "Globbing" des -T-Arguments. Dies bedeutet, dass Sie mehrere Dateien auf eine einzelne URL hochladen können, indem Sie denselben in der URL unterstützten URL-Globbing-Stil verwenden, wie folgt:
curl -T "{file1,file2}" http://www.uploadtothissite.com
oder auch
curl -T "img[1-1000].png" ftp://ftp.picturemania.com/upload/
Die Erweiterung "* .txt" funktioniert nicht, da Curl nur dieselbe Syntax wie für URLs unterstützt:
Sie können mehrere URLs oder Teile von URLs angeben, indem Sie Teilesätze in geschweifte Klammern schreiben, wie in:
http: // site . {eins, zwei, drei} .com
oder Sie können Sequenzen von alphanumerischen Reihen erhalten, indem Sie [] wie folgt verwenden:
ftp://ftp.numericals.com/file[1-100‹.txt
ftp://ftp.numericals.com/file[001-100‹.txt (mit führenden Nullen)
ftp://ftp.letters.com/file[az weibl.txt
[...]
Wenn Sie beim Aufrufen über eine Befehlszeile Eingabeaufforderungen [] oder {} verwenden, müssen Sie wahrscheinlich die vollständige URL in doppelte Anführungszeichen setzen, um zu verhindern, dass die Shell sie stört. Dies gilt auch für andere Zeichen, die speziell behandelt werden, wie z. B. '&', '?' und '*'.
Aber Sie könnten das "normale" Shell-Globbing wie folgt verwenden:
curl -T "{$(echo *.txt | tr ' ' ',')}" ftp://XXX/ -user YYY
(Das letzte Beispiel funktioniert möglicherweise nicht in allen Shells oder mit exotischen Dateinamen.)
$(perl -e 'print join(",",@ARGV)' *.txt)
behandelt Dateinamen mit Leerzeichen korrekt.