質問: linuxでurlからファイルをダウンロードする方法 通常、urlがファイル拡張子で終わるファイルをダウンロードします。ubuntu isoをダウンロードするには、簡単です。wget http://releases.ubuntu.com/14.04.3/ubuntu-14.04.3-desktop-amd64.iso しかし、asp.net/iisを使用している疑いのあるサイトに出くわしました。isoへのリンクは次の形式です(...ポリシーの場合はリンクのコンテンツを削除しました):http://some.ip.in.here/website.com/imagename.iso?md5=huhpyfjk7zeskw06zhrwaq&expires=1454811899 md5と有効期限がパラメーターとして含まれているため、これをダウンロードする方法がわかりません。したがって、wgetはこのisoではなくwebページのみをダウンロードします。助言がありますか?
回答: curl を使用してこれを行うには、2つの方法があります。この最初の方法では、-oフラグを使用して、urlからのリモート名に基づいてファイルを書き出します。この場合、ファイルをimagename.iso?md5=huhpyfjk7zeskw06zhrwaq&expires=1454811899としてシステムに書き出す可能性があります。 &と?がbashコマンドとして誤って解釈される可能性があるため、url値が二重引用符で囲まれていることに注意してください。curl -o -l "http://some.ip.in.here/website.com/imagename.iso?md5=huhpyfjk7zeskw06zhrwaq&expires=1454811899"; その方法は技術的には「機能」しますが、ファイル名はせいぜい混乱します。したがって、この別の方法では、>の後にurlの後にファイル名が続く出力リダイレクトを使用して、imagename.isoという名前のファイルにファイルの内容を出力します。curl -l "http://some.ip.in.here/website.com/imagename.iso?md5=huhpyfjk7zeskw06zhrwaq&expires=1454811899" > "imagename.iso"; したがって、私に言わせれば、2番目の方法はほとんどの平均的な使用に最適です。また、両方のコマンドで-lフラグが使用されていることにも注意してください。これらのコマンドは、ダウンロードサービスのファイルが宛先のペイロードファイルに到達する前に数回リダイレクトされることが多いため、ファイルダウンロードurlにあるリダイレクトリンクをたどるようcurlに指示します。