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


21

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

回答:


27

からman wget

-x、-force-directories:

[...]

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


男の推薦をありがとう。私は自分自身を助けることに慣れるべきです。
NGambit

クリス:しかし、fly.srk.fer.hr / dir1 / robots.txtがある場合、wget -xはfly.srk.fer.hrディレクトリを作成し、dir1 / robots.txtという名前のファイルをその中に置きます。サブディレクトリを作成するために必要なもの。すなわち、robots.txtをfly.srk.fer.hr/dir1/に保存します
NGambit

@NGambit dir1/robots.txtUnixで単一のファイルを作成することは不可能です。
クリスダウン

あなたが正しいです。私が使用していた設定ファイルは、物事を台無しにしていたディレクトリパスに「/」ではなく「\」がありました(別のウィンドウベースのファイルから解析されたため)。「\」を「/」に置き換えるだけで、「wget -x -i filename」はチャームのように機能します
-NGambit

2
サイドノートでは:時々 、あなたは、あなたが追加、URLの最初のN個のフォルダをスキップする:--cut-dirs=N
tokland

16

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

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

例えば

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...
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.