Herunterladen und Extrahieren einer TAR-Datei in ein bestimmtes Verzeichnis

Herunterladen und Extrahieren einer TAR-Datei in ein bestimmtes Verzeichnis

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/

verwandte Informationen