GNU/Linux >> Linux の 問題 >  >> Linux

wget vs curl:wget と curl を使用してファイルをダウンロードする方法

質問: 通常、wget を使用してファイルをダウンロードします。一部のシステムでは、wget がインストールされておらず、curl のみが使用可能です。 curl を使用してリモート ファイルをダウンロードする方法を簡単な例で説明してもらえますか? curl と wget に違いはありますか?

答え: 大まかに言うと、wget と curl はどちらも同じことを行うコマンド ライン ユーティリティです。

  • どちらも、FTP と HTTP(s) を使用してファイルをダウンロードするために使用できます。
  • curl と wget を使用して HTTP POST リクエストを送信することもできます
  • ただし、curl は、プログラマーが独自のコード内で使用できる API を提供します。 curl は、クロスプラットフォーム ライブラリである libcurl を使用します。
  • wget は API を持たない単なるコマンドライン ツールです。
  • Curl は、wget がサポートしていない多くのプロトコルもサポートしています。例:SCP、SFTP、TFTP、TELNET、LDAP(S)、FILE、POP3、IMAP、SMTP、RTMP、RTSP。
  • wget を使用することには大きな利点があります。 wget は再帰的なダウンロードをサポートしていますが、curl はサポートしていません。

Wget の例

次の例では、ファイルをダウンロードし、リモート サーバーと同じ名前で保存します。

wget http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

次の例では、ファイルをダウンロードし、リモート サーバーとは別の名前で保存します。これは、以下の例に示すように、リモート URL の URL にファイル名が含まれていない場合に役立ちます。

wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

その他の wget の例:15 の素晴らしい例を含む究極の Wget ダウンロード ガイド

カールの例

$ curl -O http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
 28 3762k   28 1085k    0     0  72771      0  0:00:52  0:00:15  0:00:37 54267

オプション -O (大文字の O) は重要です。これがないと、curl はダウンロードしたファイルを stdout にダンプし始めます。 -O を使用すると、リモート サーバーと同じ名前のファイルがダウンロードされます。上記の例では、strx25-0.9.2.1.tar.bz2 をダウンロードしているため、ダウンロードされるファイルも同じ名前になります。

-O の代わりに、以下に示すように「-remote-name」も指定できます。どちらも同じです。

$ curl --remote-name http://www.openss7.org/repos/tarballs/strx25-0.9.2.1.tar.bz2

curl のダウンロード中に、次の有用な情報が得られます:

  • % – 現在完了しているダウンロードの合計 %。 100%になったらダウンロード完了です。上記の例では、ファイルの 28% しかダウンロードされていません。
  • 合計 – ファイルの合計サイズ
  • 受信済み – これまでにダウンロードされたファイルの合計サイズ。上記の例では、これまでに 1085k をダウンロードしました (合計 3762k のうち)
  • Xferd – これは、ファイルをリモート サーバーにアップロードするときに使用されます。アップロード中、これまでにアップロードされたファイルの合計サイズが表示されます。ファイルをダウンロードしているため、この例では 0 です。
  • Average Speed Dload – 平均ダウンロード速度を示します。
  • アップロードの平均速度 – ファイルのアップロード中の平均アップロード速度を示します
  • 合計時間 – これは、現在のダウンロード (またはアップロード) 速度に基づいて、ファイル全体をダウンロード (またはアップロード) するのにかかる合計時間を示します。この例では、このファイルをダウンロードするのに合計で約 52 秒かかります。
  • Time Spend – curl がこれまでにファイルのダウンロード (またはアップロード) に費やした時間。この例では、これまでに 15 秒かかりました。
  • 残り時間 – 「合計時間」 – 「経過時間」に基づいて計算されます。
  • 現在の速度 – 現在のダウンロード/アップロード速度を示します。これを Average Spped Dload/UPload と比較して、システムの現在のダウンロードの速さまたは遅さを確認してください。

ファイルをダウンロードして、リモート サーバーのファイル名とは異なる名前で保存する場合は、以下に示すように -o (小文字の o) を使用します。これは、以下の例に示すように、リモート URL の URL にファイル名が含まれていない場合に役立ちます。

$  curl -o taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 50243  100 50243    0     0   170k      0 --:--:-- --:--:-- --:--:--  400k

上記の例では、リモート URL にファイル名がなく、パラメータを渡す php スクリプトを呼び出すだけです。ただし、ファイルはダウンロードされ、ローカル システムに taglist.zip として保存されます。 -o の代わりに、「–output」も指定できます。

その他の curl の例:15 の実用的な Linux cURL コマンドの例


Linux
  1. wgetを使用してディレクトリ全体とサブディレクトリをダウンロードする方法は?

  2. wgetコマンドを使用してドロップボックスファイルをダウンロードするには?

  3. Linux で URL からファイルをダウンロードする方法

  1. Linuxで.gzファイルと.tar.gzファイルを抽出する方法

  2. ファイルがWgetによってダウンロードされているかどうかを確認する方法は?

  3. Rsyncを使用してファイルを送信およびダウンロードする方法

  1. Linuxでファイルをダウンロードするための5つのWgetコマンドの例。

  2. wget コマンドを使用してコマンド ラインからファイルをダウンロードするにはどうすればよいですか?

  3. AWK を使用して 2 つのファイルをマージする方法は?