Ich möchte ein Tar eines Git-Repos herunterladen und dessen Inhalt in einen anderen Ordner extrahieren.
Die folgende Zeile (der Übersichtlichkeit halber aufgeteilt) funktioniert:
curl -L -0 nt-dotfiles.tar.gz https://api.github.com/repos/nicktomlin/laptop/tarball \
| tar --strip-components=1 -zx -C ~/Documents/dotfiles
aber es wird dieser Fehler ausgegeben:
curl: (6) Could not resolve host: nt-dotfiles.tar.gz; nodename nor servname provided, or not known
Ich habe kein Problem damit, alles so zu lassen, wie es ist (weil es immer noch funktioniert), aber ich bin neugierig auf den Fehler und würde mich besser fühlen, wenn er verschwinden würde.
Danke!
Antwort1
Ihre Syntax sollte lauten: curl -L -o nt-dotfiles.tar.gz https://api. ...
Sie verwenden eine Null anstelle des kleinen „Oh“. Eine Null zwingt curl, http1.0 zu verwenden. „o“ liefert einen Ausgabedateinamen.
Aus der Manpage:
-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"
Antwort2
Sie können Folgendes versuchen:
$ curl -s http://example.com/file.tgz | tar xvf - -C dest/