it-swarm-ja.com

複数のファイルをダウンロードし、wgetで出力ファイル名を指定する

wget-iオプションを使用して、URLからファイルのリストをダウンロードしています。

ただし、これらのファイルが保存される名前も指定したいと思います。

-Oを使用して単一のファイルでそれを行うことができ、-Pでディレクトリを指定できるようです。ファイルのリストをダウンロードして、それぞれのファイル名を指定することは可能ですか?

7
leecbaker

wget

おそらくwgetではない

Perl

何かのようなもの ...

Perl -MLWP::Simple -lane 'getstore($F[0],$F[1])' urls_and_filenames.txt

Windowsの場合、「」の代わりに「」を使用します

curl

curl には関連する可能性のあるいくつかのオプションがあることに注意してください

-K、-config

Curl引数を読み取る構成ファイルを指定します。

--url

フェッチするURLを指定します。このオプションは、構成ファイルでURLを指定する場合に最も便利です。

このオプションは何度でも使用できます。このURLの書き込み先を制御するには、-o、-outputまたは-O、-remote-nameオプションを使用します。

-o, --output <file>

Stdoutの代わりに出力を書き込みます。 {}または[]を使用して複数のドキュメントをフェッチする場合は、指定子で「#」の後に数字を使用できます。その変数は、フェッチされるURLの現在の文字列に置き換えられます。のように:

curl http://{one,two}.site.com -o "file_#1.txt"

または、次のようないくつかの変数を使用します。

curl http://{site,Host}.Host[1-5].com -o "#1_#2"

このオプションは、使用しているURLの数だけ使用できます。

4
RedGrittyBrick

wgetではありませんが、aria2cはこれをサポートしています https://aria2.github.io/manual/en/html/aria2c.html#input-file

aria2c -i fileList.txt

たとえば、fileList.txtの内容は次のとおりです。

http://server/file.iso http://mirror/file.iso
  dir=/iso_images
  out=file.img
http://foo/bar

Aria2が-i fileList.txt -d /tmpオプションで実行された場合、file.iso/iso_images/file.imgとして保存され、http://server/file.isoおよびhttp://mirror/file.isoからダウンロードされます。ファイルbarhttp://foo/barからダウンロードされ、/tmp/barとして保存されます。

1
AndrewHarvey