URIのパスの一部をフォルダにミラーリングするようにwgetに指示する

URIのパスの一部をフォルダにミラーリングするようにwgetに指示する

ファイル内に URI のリストがありますuris.txt:

http://example.com/file1.pdf
http://example.com/file2.pdf
http://example.com/Folder/file3.pdf
http://example.com/フォルダ/サブフォルダ/file4.pdf

私の HDD 上のディレクトリ構造は次のようになります。

|
|-file1.pdf
|-file2.pdf
|-Folder
  |-file3.pdf
  |-Subfolder
    |-file4.pdf

私の現在のコマンドは次のとおりです:wget -i uris.txt -P downloads

残念ながら、wget はすべてのディレクトリをフラット化します。つまり、ファイル名はベース ディレクトリ (コマンド ラインで -P によって指定) と URI パスの最後の部分を連結することによって決定されます。

サーバーが提供するディレクトリ構造を維持することは可能ですが、再帰モードこれは、指定された URI リストではなく、HTML と CSS に対してのみ動作します。

答え1

追加オプションの -xまたは--force-directoriesおよび-nHまたは を使用して--no-host-directories、example.com トップ ディレクトリを回避することができます。

答え2

答えを簡潔に提供する推奨読書将来に備えた方法:

man wget

探し--no-host-directories--cut-dirs=number

--ホストディレクトリなし
wget は、すべてのデータを格納するための「example.com」という名前のディレクトリの作成をスキップします。

--cut-dirs=数値
number上から数えてサブディレクトリ に対しても同じことを行います。

関連情報