curlコマンドでZIPファイルをダウンロードする


33

curlコマンドでZIPファイルをダウンロードするにはどうすればよいですか?試しましたcurl -sOが、エラーが発生しました。次のアドレスからzipファイルをダウンロードしたい:http : //github.com/ziyaddin/xampp/archive/master.zip

できません。何を入力する必要がありますか?


エラーメッセージは何ですか?
デビッドフォースター

回答:



20

curlの代わりにwgetを試してください: wget http://github.com/ziyaddin/xampp/archive/master.zip


1
ダウンボッターは説明できますか?それとも他のポスターですか?
-don.joey

4
wget代わりに理由を説明してもらえますcurlか?
ホルヘブカラ14

1
以下のコマンドライン(あなたが気にしている場合) -以下のオプションを意味し、しかし、最大の違いは、wgetのサポート再帰的なダウンロードである
蘭Davidovitz

理由はわかりませんが、でunzipダウンロードしたファイルでエラーが発生しcurl、うまく動作しましたwget
-Dinei

15

次を使用できます。

curl https://github.com/ziyaddin/xampp/archive/master.zip -O -J -L

名前を付けて保存: xampp-cli-master.zip

  • つかいます -Lリダイレクトが見つかった場合にします。
  • -Oリモートファイル名に使用(master.zip
  • 使用-J(との使用-O(リモート・ヘッダファイル名を可能にします)xampp-cli-master.zip


または、使用-oして独自のファイル名を作成します。

curl https://github.com/ziyaddin/xampp/archive/master.zip -L -o MyFilename.zip

名前を付けて保存: MyFilename.zip

注:(GitHubはSSLをサポートしています-を使用https://


curlrc 設定ファイルを使用するか、CURLコマンドをエイリアスして使用することもできますcurl -O -Lして、WGETと同様に機能させることができます。

参照:https : //curl.haxx.se/docs/manpage.html#OPTIONS-O-J-L-oを参照)参照)

-Jオプションを指定してCURLを使用する場合の警告に注意してください。

指定されたファイル名の%-sequences(まだ)をデコードする試みはないので、このオプションはかなり予期しないファイル名を提供する場合があります。

警告:このオプションは、特にWindowsで慎重に使用してください。不正なサーバーからDLLまたはその他のファイルの名前が送信される可能性があります。DLLまたはその他のファイルは、Windowsまたはサードパーティソフトウェアによって自動的にロードされる可能性があります。


5

ファイルをダウンロードする場合は、wget [option]... [URL]...代わりに使用します。

オプションの詳細については、これをターミナルに入力するだけです: man wget

あなたの目的のために:

wget http://github.com/ziyaddin/xampp/archive/master.zip

.zipファイルは、現在のディレクトリに保存されることに注意してください。


1
使用することの利点を説明する参考になるwgetの上をcurl。2つの違いを知りたいはこちらをご覧ください
ホルヘブカラ14

@JorgeBucaran マイナーな役割でcurl貢献しwgetている著者の著者が書いた比較を読みました。(私の1時間の小さなプロジェクトに基づいて)一つのまぶしい不作為は、wgetのがカールよりも速く10倍である(<2秒12対秒)から日の出と日の入り時刻を取得するhttps://www.timeanddate.com
WinEunuuchs2Unix

そのため、wgetを使用してファイルが直接提供されず、代わりにURLがサービスにファイルの場所を提供して提供する場合、ダウンロードするのはhtmlです。代わりに、いくつかのファイルのための優れているカールだから
Zloy Smiertniy

3

を使用してGitHub(またはリダイレクトを行う他のサイト)のファイルをダウンロードするにはcurl-L(リダイレクトに従う)を渡す必要があるため、次を使用します。

curl -L http://github.com/ziyaddin/xampp/archive/master.zip -o xampp.zip


1

「curl -LOk」は、安全でないプロトコル(-k)を使用してSSL証明書チェックを無効にし(証明書と一致しないパスが間違っているために失敗します)、リモートサーバーから提案されたファイル名(-O)を使用して出力ファイルを作成します(これも安全ではありません)。私の意見では、URLのこの不適合部分を渡す必要を避けるために、サーバーは必要に応じてローカルリダイレクトエイリアスを作成するように構成する必要があります。ただし、リダイレクトはHTTPリダイレクト(HTTPエラー30x)のみを使用して行われます。これにより、この(安全でない)リダイレクトに従わない(デフォルトでは)カールの問題が発生し、オプション(-k)はこのセキュリティチェックを無効にします。したがって、HTTPリダイレクト(永続的に移動)を使用する代わりに、サーバーのファイルシステムに内部リンクを追加してください。URLがファイルシステム間で直接アクセスできない別の物理サーバーで実際にホストされているためにこれが必要な場合は、このホストに別のDNS名を使用する必要があります。これにより、クライアントはリダイレクトせずに正しいホスト名を直接照会できます。次に、Webページを修正します(Webサーバーのログを使用して、HTTP 30xリダイレクトが返される場所と、チェックおよび更新が必要なWebページを確認できます)。安全でない/チェックされていないプロトコルを使用するようにクライアントに強制することは良いオプションではありません。

したがって、これは間違いなくWebサーバーの設定が非常に悪いという問題です。管理者に連絡して修正してください。


0

Axelも使用できます。axelは、ライトコマンドラインダウンロードアクセラレータです。サポートHTTP, HTTPS, FTPおよびFTPSプロトコル。その素晴らしくて速い代替案。

以下をaxel使用してインストールします。

apt-get install axel

次にファイルをダウンロードします:

axel http://github.com/ziyaddin/xampp/archive/master.zip

0

オプション-Lを使用してリダイレクトを追跡します。また、--outputオプションを使用して、zipファイルのパスと名前を指定することもできます。例えば:

sudo curl -L https://github.com/CISOfy/lynis/archive/master.zip --output /etc/lynis.zip

注:ターゲットフォルダーへの書き込み権限がない場合は、sudoを使用します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.