curlコマンドでファイルを特定のフォルダーに保存する


182

シェルスクリプトで、URLからファイルをダウンロードし、特定のフォルダーに保存したいと考えています。curlコマンドを使用して特定のフォルダーにファイルをダウンロードするために使用する必要がある特定のCLIフラグとは何ですか?


bashプログラミングはプログラミングのようです...
rjurney

回答:


282

私はあなたがカールへの道を与えることができるとは思いませんが、あなたはその場所にCDを送り、ダウンロードしてCDを戻すことができます。

cd target/path && { curl -O URL ; cd -; }

またはサブシェルを使用します。

(cd target/path && curl -O URL)

どちらの方法でも、パスが存在する場合にのみダウンロードされます。-Oリモートファイル名を保持します。ダウンロード後、元の場所に戻ります。

ファイル名を明示的に設定する必要がある場合は、小さな-oオプションを使用できます。

curl -o target/path/filename URL

2
私はこのコマンドを持っています:curl -LOk basename /packages" github.com/ziyaddin/xampp/archive/master.zip "。しかし、それは間違ったファイル名を示しています->basename /packages
Ziyaddin Sadigov

10
あなたはまた、サブシェルを使用することができ、とても好き:(cd target/path; curl -O URL)
Ehteshチョードリー

9
2つの違いは何ですか?最初の1つはディレクトリにcdしてファイルをダウンロードし、次にcdsで出力します。2番目は現在のディレクトリに残り、ファイルを特定の場所にカールします。2つ目はより単純に見えます。
Henry Zhu

9
@HenryZhu最初のファイル名は、サーバー上のファイルの名前から取得されます。2番目に、ダウンロードしたコンテンツの名前を指定した名前に変更します。
turtlemonvh 2015

4
ディレクトリを指定するオプションが本当に必要ですが、サーバーのファイル名を使用します。cd少し洗練されていないように見えますが、現在は使用が最良のオプションのようです。
StockB

4

curl(ファイル名も指定せずに)そのオプションはありませんが、ありますwget。ディレクトリは、相対または絶対です。また、ディレクトリが存在しない場合は自動的に作成されます。

wget -P relative/dir "$url"

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