web-dev-qa-db-ja.com

ファイルをダウンロードし、ソースと同じファイル構造を作成します

ダウンロードしたいURIのリストで構成される設定ファイルがあります。例えば、

  http://xyz.abc.com/Dir1/Dir3/sds.exe
  http://xyz.abc.com/Dir2/Dir4/jhjs.exe
  http://xyz.abc.com/Dir1/itr.exe

設定ファイルを読み取って各URLをコピーしたいのですが、同時にホスト上と同じディレクトリ構造を作成します。たとえば、構成ファイルの最初の行で、ローカルマシンにディレクトリ構造Dir1/Dir3を作成し(存在しない場合)、sds.exeを.../Dir1/Dir3 /にコピーします。

「wget -i」を使用してファイル内のすべてのURLをダウンロードできることがわかりましたが、それを使用して対応するディレクトリ構造を作成するにはどうすればよいですか

24
NGambit

man wget

-x、-force-directories:

[...]

ディレクトリが作成されていない場合でも、ディレクトリの階層を作成します。例えば。 wget -x http://fly.srk.fer.hr/robots.txt は、ダウンロードしたファイルをfly.srk.fer.hr/robots.txtに保存します。

30
Chris Down

あなたが求めている構造を取得するには、-xと同様に-nHを使用することをお勧めします。

これにより、ホスト名が削除され、予想されるディレクトリ構造が作成されます。

例えば.

wget -x -nH http://xyz.abc.com/Dir1/Dir3/sds.exe

- 'Dir1/Dir3/sds.exe' saved [1234]

Manページから:

-nH
--no-Host-directories
   Disable generation of Host-prefixed directories.  By default, invoking Wget with -r http://fly.srk.fer.hr/ will create a structure of directories beginning with fly.srk.fer.hr/.  This option disables such behavior.

-x
--force-directories
   ...create a hierarchy of directories, even if one would not have been created otherwise...
18
Joe