⚓ Создание родительских каталогов с помощью Curl с использованием флага –create-dirs

Как создать каталог с curl

by itisgood

Это может избавить вас от необходимости записывать файл во временный каталог, а затем перемещать его после использования mkdir.

Допустим, вы хотите загрузить файл в определенный каталог, который еще не существует, а также сделать его исполняемым.

Я часто делаю это с помощью curl.

Без использования –create-dirs:

curl https://raw.githubusercontent.com/nickjj/notes/master/notes \
  --output /tmp/notes \
  && chmod +x /tmp/notes \
  && mkdir -p /tmp/custom/dir/path \
  && mv /tmp/notes /tmp/custom/dir/path

С использованием –create-dirs:

curl https://raw.githubusercontent.com/nickjj/notes/master/notes \
  --create-dirs --output /tmp/custom/dir/path/notes \
  && chmod +x /tmp/custom/dir/path/notes

Поскольку последним аргументом приведенной выше команды является путь к файлу, мы можем даже улучшить это, используя $_, который содержит последний аргумент предыдущей команды.

Таким образом, мы можем избежать дублирования пути без создания пользовательской переменной:

curl https://raw.githubusercontent.com/nickjj/notes/master/notes \
  --create-dirs --output /tmp/custom/dir/path/notes \
  && chmod +x "${_}"

Если какая-либо из директорий существует, то она не будет создана, но команда все равно будет работать.

Каталоги создаются с правами 0750.

–create-dirs была доступна начиная с версии curl 7.10.3 (январь 2003).

см. также:

You may also like

Leave a Comment