Ваша первая команда должна работать без пробелов:
curl -T "{file1.txt,file2.txt}" ftp://XXX/ -user YYY
Также обратите внимание на корявый "/" в URL-адресах выше.
Вот запись в руководстве curl об опции "-T":
-T, --upload-file
Это передает указанный локальный файл на удаленный URL. Если в указанном URL нет части файла, Curl добавит имя локального файла. Обратите внимание, что вы должны использовать символ / в последнем каталоге, чтобы доказать Curl, что имя файла отсутствует, иначе curl решит, что имя вашего последнего каталога является именем удаленного файла. Это, скорее всего, приведет к неудаче операции загрузки. Если это используется на сервере HTTP(S), то будет использоваться команда PUT.
Используйте имя файла "-" (одиночное тире), чтобы использовать stdin вместо заданного файла. В качестве альтернативы вместо "-" можно указать имя файла "." (одинарная точка). "-" для использования stdin в неблокирующем режиме, что позволяет читать вывод сервера во время загрузки stdin.
Вы можете указать один -T для каждого URL в командной строке. Каждая пара -T + URL указывает, что и куда загружать. curl также поддерживает "globbing" аргумента -T. что означает, что вы можете загрузить несколько файлов на один URL, используя тот же стиль URL globbing, который поддерживается в URL, например, так:
curl -T "{file1,file2}" http://www.uploadtothissite.com.
или даже
curl -T "img[1-1000].png" ftp://ftp.picturemania.com/upload/
"*.txt" расширение не работает, потому что curl поддерживает только тот же синтаксис, что и для URL:
Вы можете указать несколько URL или частей URL, записывая наборы частей в скобках, как в:
http://site.{one,two,three}. com
или вы можете получить последовательности буквенно-цифровых серий, используя [], как в:
ftp://ftp.numericals.com/file[1-100].txt
ftp://ftp.numericals.com/file[001-100].txt (с ведущими нулями)
ftp://ftp.letters.com/file[a-z].txt
[...]
При использовании последовательностей [] или {} при вызове из командной строки, вам, вероятно, придется заключить полный URL в двойные кавычки, чтобы избежать вмешательства оболочки. Это касается и других специальных символов, таких как, например, '&', '?' и '*'.
Но вы можете использовать "нормальный" shell globbing следующим образом:
curl -T "{$(echo *.txt | tr ' ' ',')}" ftp://XXX/ -user YYY
(Последний пример может работать не во всех оболочках или с экзотическими именами файлов)
.