wgetで場所を指定する方法は?


694

/ tmp / cron_test /にファイルをダウンロードする必要があります。私のwgetコードは

wget --random-wait -r -p -nd -e robots=off -A".pdf" -U mozilla http://math.stanford.edu/undergrad/

それで、ディレクトリを指定するいくつかのパラメータはありますか?


回答:


955

マニュアルページから:

-P prefix
--directory-prefix=prefix
           Set directory prefix to prefix.  The directory prefix is the
           directory where all other files and sub-directories will be
           saved to, i.e. the top of the retrieval tree.  The default
           is . (the current directory).

したがって、コマンドに-P /tmp/cron_test/(短い形式)または--directory-prefix=/tmp/cron_test/(長い形式)を追加する必要があります。また、ディレクトリが存在しない場合は作成されます。


5
-P / tmp / cron_test /は機能しませんが、/ P tmp / cron_test /のように/を削除すると機能し、存在しないディレクトリも作成されます。
カンガルー

7
システムに/ tmp / cron_test /がないため、おそらくカンガルーは機能しません:P
Sameer Alibhai

41
マニュアルの説明では、このオプションを検索するのが難しくなっています。何かを「ディレクトリプレフィックス」として保存する場所を考えていません。共有してくれてありがとう!
Iain Samuel McLean Elder 14

7
また、あなたは、経由ルートフォルダを削除することができ--no-host-directoriesたり-nHごとにserverfault.com/questions/354792/...
外国人の生活様式

-iで入力ファイルを使用する場合、-Pは無視されますか?
Jan Viehweger 2017

409

-Oは、ダウンロード先のファイルのパスを指定するオプションです。

wget <file.ext> -O /path/to/folder/file.ext

-Pは、ディレクトリ内のファイルをダウンロードするプレフィックスです

wget <file.ext> -P /path/to/folder

8
私はそれを作るために末尾にスラッシュを追加したい/path/to/folder/
ルイ・マドックス

35
-O私は必要のないものを指定することにも賛成票を投じましたが、私はそれ-Pが必要なものであると確信しました。
WORMSS 2016年

私のマシンのmanページによる@louisMaddoxでは、デフォルトのプレフィックスは "。"です。(つまり、現在のディレクトリ)「ディレクトリプレフィックス」に末尾のスラッシュを追加すると、ダブルスラッシュエラー(つまり、my / favorite / dir / prefix //)が発生します。セマンティクスを考慮すると、「ディレクトリプレフィックス」には末尾が不要です。スラッシュ。
ティモシーLJスチュワート

2
@ TimothyL.J.Stewartダブルスラッシュエラーはありません。
har-wradim

注意:-Oオーバーライドは、-Pあなただけの出力ディレクトリを指定することはできませんので、(考えるdirname 、単に出力ファイル名は、(だと思うbasename)この使用のためだけ。-O完全なファイルパスを指定する。
murlakatamenka

7

ダウンロードするURLが正しいことを確認してください。まず?、などの文字を含むURLは解析および解決できません。これはcmd行を混乱させ、ダウンロード先のファイル名としてソースURL名に解決されないすべての文字を受け入れます。

例えば:

wget "sourceforge.net/projects/ebosse/files/latest/download?source=typ_redirect"

という名前のファイルにダウンロードされます?source=typ_redirect

ご覧のとおり、URLについて少し知っておくと、理解しやすくなりwgetます。

hirensディスクから起動していて、リソースとしてLinux 2.6.1しかありません(インポートosは使用できません)。物理ハードドライブにISOをダウンロードする際の問題を解決する正しい構文は次のとおりです。

wget "(source url)" -O (directory where HD was mounted)/isofile.iso" 

次のコマンドで表示されるファイル(デフォルトのファイル)にwgetダウンロードする時点を見つけることで正しいURLを把握でき、必要なindex.htmlファイルの正しいサイズ/その他の属性を持っています。

wget "(source url)"

そのURLとソースファイルが正しく、それがにダウンロードされindex.htmlたら、次のコマンドを使用して、ダウンロード(ctrl+ z)を停止し、出力ファイルを変更できます。

-O "<specified download directory>/filename.extension"

ソースURLの後。

私の場合、これはISOをダウンロードし、それをバイナリファイルとしてに格納することになり、isofile.isoうまくいけばマウントされます。


2

「-P」が適切なオプションです。関連情報については、以下をお読みください。

wget -nd -np -P / dest / dir --recursive http:// url / dir1 / dir2

便宜上、manページの関連スニペット:

   -P prefix
   --directory-prefix=prefix
       Set directory prefix to prefix.  The directory prefix is the directory where all other files and subdirectories will be saved to, i.e. the top of the retrieval tree.  The default is . (the current directory).

   -nd
   --no-directories
       Do not create a hierarchy of directories when retrieving recursively.  With this option turned on, all files will get saved to the current directory, without clobbering (if a name shows up more than once, the
       filenames will get extensions .n).


   -np
   --no-parent
       Do not ever ascend to the parent directory when retrieving recursively.  This is a useful option, since it guarantees that only the files below a certain hierarchy will be downloaded.

1

man wget:-O file --output-document = file

wget "url" -O /tmp/cron_test/<file>

1
-oオプションは指定されたファイルにアンロードされたファイルを置くため、これは答えではありません。しかし問題は「ファイルをフォルダに入れる方法」です。そして、これは重複して存在する答えです
アントンゴルブノフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.