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

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

ダウンロードする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をダウンロードできることがわかりましたが、それを使用してそのディレクトリ構造をどのように作成できますか?

答え1

からman wget

-x、--force-ディレクトリ:

[...]

それ以外の場合は作成されませんが、ディレクトリ階層を作成します。たとえば、wget -xhttp://fly.srk.fer.hr/robots.txtダウンロードしたファイルはfly.srk.fer.hr/robots.txtに保存されます。

答え2

要求された構造を取得するには、-xだけでなく-nHも使用することをお勧めします。

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

例えば

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

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

マニュアルページから:

-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...

関連情報