Это может избавить вас от необходимости записывать файл во временный каталог, а затем перемещать его после использования 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).
см. также:
- ⚓ Как использовать команду cURL в Linux
- Как установить команду cURL в Windows 10
- 🖧 В чем разница между curl и Wget?
- HTTPie – современный HTTP-клиент, похожий на команды Curl и Wget
- ⚓ cURL – Как отобразить заголовки запроса и заголовки ответа
- 🖧 Как установить тайм-аут в команде cURL
- ⚓ Выполнение POST-запроса с помощью Curl [Практические примеры]