web-dev-qa-db-ja.com

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

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

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

32

curl -LOを使用しましたが、うまくいきました。 wgetも機能します。

35

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

20
don.joey

次を使用できます。

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://を使用してください)


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

相談: https://curl.haxx.se/docs/manpage.html#OPTIONS (参照: -O-J 、- -L-o

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

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

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

14
bshea

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

オプションの詳細については、ターミナルに次のように入力してください:man wget

あなたの目的のために:

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

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

5
Meintjes

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

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

3

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

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

1
verdy_p

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

Sudo curl -L https://github.com/CISOfy/lynis/archive/master.Zip --output /etc/lynis.Zip

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

0
Luigi Lopez

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

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

apt-get install axel

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

axel http://github.com/ziyaddin/xampp/archive/master.Zip
0
Mahesh