web-dev-qa-db-ja.com

wgetを使用して--no-parentでディレクトリを再帰的にフェッチする

以下を使用して、ディレクトリ内のすべてのファイルをダウンロードしようとしています。

wget -r -N --no-parent -nH -P /media/karunakar --ftp-user=jsjd --ftp-password='hdshd' ftp://ftp.xyz.com/Suppliers/my/ORD20130908

しかし、--no-parentを指定したにもかかわらず、wgetは親ディレクトリからファイルをフェッチしています。 ORD20130908のファイルだけが必要です。

12
Karunakar

URLの最後の項目がファイルではなくディレクトリであることを示すために、末尾にスラッシュを追加する必要があります。

wget -r -N --no-parent -nH -P /media/karunakar --ftp-user=jsjd --ftp-password='hdshd' ftp://ftp.xyz.com/Suppliers/my/ORD20130908

wget -r -N --no-parent -nH -P /media/karunakar --ftp-user=jsjd --ftp-password='hdshd' ftp://ftp.xyz.com/Suppliers/my/ORD20130908/

ドキュメント から:

HTTP(およびHTTPS)の場合、末尾のスラッシュは「--no-parent」にとって非常に重要です。 HTTPには「ディレクトリ」の概念がありません。Wgetは、ディレクトリとは何か、そうでないものを示すためにあなたに依存しています。 ' http:// foo/bar / 'では、Wgetは 'bar'をディレクトリと見なしますが、 ' http:// foo/bar '(no末尾のスラッシュ)、「bar」はファイル名と見なされます(したがって、「-no-parent」は親が「/」であるため、意味がありません)。

23
Synetech
wget -r -N --no-parent -nH -P /media/karunakar --ftp-user=jsjd --ftp-password='hdshd'  -I/ORD20130908 ftp://ftp.xyz.com/Suppliers/my

-Iフラグの使用についてはwgetドキュメントを参照してください

4
EncomX