.tar を特定のディレクトリにダウンロードして解凍する

.tar を特定のディレクトリにダウンロードして解凍する

Git リポジトリの tar をダウンロードし、その内容を別のフォルダーに抽出したい。

次の行 (わかりやすくするために分割されています) は機能します。

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」は出力ファイル名を提供します。

man ページから:

-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/

関連情報