web-dev-qa-db-ja.com

wgetはダウンロードしたファイル名を指定し、他のファイルは指定しません

ファイルが希望の名前になるようにwgetを使用したいと思います。たとえば、wget -r http://www.x.com/y/zを実行すると、実際にはindex.htmlであっても、メインファイルの名前はzになります。

Wgetの-Oオプションをチェックしましたが、マニュアルによると:

‘-O file’
‘--output-document=file’
The documents will not be written to the appropriate files, but all will be concatenated together and written to file. ...

すべてのファイルが連結され、目的の名前のファイルに書き込まれるようです。メインファイルのみ(再帰から生じるファイルは含まない)を連結したいのですが。どうやってやるの?

19
Paul S.

メインファイルのみが必要な場合は、-rを省略します。

wget -O customFileName http://www.x.com/y/z

wgetは、再帰的ダウンロードの1つのファイルの名前変更をサポートしていません。ファイル名はURLの一部に対応しており、ファイルの名前を変更するとファイル間のリンクが切断されることに注意してください。あなたはいつでもそれを2つに分けることができます:

wget -O customFileName http://www.x.com/y/z
wget -r http://www.x.com/y/z

または、ファイルの名前を自分で変更します。

wget -r http://www.x.com/y/z
mv z customFileName
36
Old Pro

URLの末尾に/を追加してみてください。

$ wget -r http://www.x.com/y/z/

これにより、zファイルの代わりにindex.htmlファイルが保存されます。

3
Tim Heap

私が理解していることから、サーバーが指すファイルを連結し、すべてのファイルをサイト上の1つの場所に再帰的にダウンロードしたいと考えています。

連結:

wget -qO- http://www.google.com

1つの場所への再帰的なダウンロード:

wget --mirror -p --convert-links -P ./LOCAL-DIR http://www.google.com

LOCAL-DIRは、すべてのディレクトリがダウンロードされる1つのディレクトリです。このサイトから:

http://www.thegeekstuff.com/2009/09/the-ultimate-wget-download-guide-with-15-awesome-examples/

0
earlonrails