LINUX.ORG.RU

Как через curl отправить файлы по маске ?


0

1

Подкажите пожалуйста. Имеется скрипт на bash

curl -T $HOME/files/*.zip ftp://1.1.1.1/qwert/

Но так он не работает потому что curl не понимает *.zip Как можно указать в строке запроса, чтобы curl отправил все файлы zip из каталога?

curl как раз понимает *.zip (судя по документации), но для этого glob нужно экранировать взяв его в двойные кавычки. А так ваш glob раскрывается шелл'ом, и получается совсем не то что ожидает curl.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Простите, я не совсем поняла. Если я заключаю всю строку в дывойные кавычки, то пишет так:

: Нет такого файла или каталога 

не видит эти файлы.

Sveta_G
() автор топика
Ответ на: комментарий от slovazap

Ага, в начале man написано, что поддерживаются [] и {}, больше ничего не вижу. Кстати, можно задать сколько угодно -T опций, если количество вызовов curl принципиально.

xaizek ★★★★★
()
Ответ на: комментарий от slovazap

Извращаться так извращаться:

curl -T "{$(comma=; for file in $HOME/files/*.zip; do echo -n "$comma$file"; comma=,; done)}"  ftp://1.1.1.1/qwert/

(Плохие имена файлов, в которых самих запятые, например, либо надо эскейпить как-то, либо ничего не поделаешь вообще — из курловской документации на первый взгляд не ясно).

LeninGad
()
Последнее исправление: LeninGad (всего исправлений: 1)
Ответ на: комментарий от xaizek

Кстати, можно задать сколько угодно -T опций, если количество вызовов curl принципиально.

Нет, там написано что на один URL не больше одного -T.

slovazap ★★★★★
()

При чём тут Development?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.