Я хочу скачать tar-архив git-репозитория и извлечь его содержимое в другую папку.
Работает следующая строка (разбитая для ясности):
curl -L -0 nt-dotfiles.tar.gz https://api.github.com/repos/nicktomlin/laptop/tarball \
| tar --strip-components=1 -zx -C ~/Documents/dotfiles
но выдает такую ошибку:
curl: (6) Could not resolve host: nt-dotfiles.tar.gz; nodename nor servname provided, or not known
Меня вполне устраивает оставить все как есть (потому что все равно работает), но мне интересно узнать об ошибке, и было бы лучше, если бы она исчезла.
Спасибо!
решение1
Ваш синтаксис должен быть таким: curl -L -o nt-dotfiles.tar.gz https://api. ...
Вы используете ноль вместо строчной буквы «Oh». Ноль заставляет curl использовать http1.0. «o» предоставляет выходное имя файла.
Из страницы руководства:
-0, --http1.0
(HTTP) Forces curl to issue its requests using HTTP 1.0 instead
of using its internally preferred: HTTP 1.1.
-o, --output <file>
Write output to <file> instead of stdout. If you are using {} or
[] to fetch multiple documents, you can use '#' followed by a
number in the <file> specifier. That variable will be replaced
with the current string for the URL being fetched. Like in:
curl http://{one,two}.site.com -o "file_#1.txt"
решение2
Вы можете попробовать:
$ curl -s http://example.com/file.tgz | tar xvf - -C dest/