WGET を使用して FTP サーバーからファイルを転送する際の問題

WGET を使用して FTP サーバーからファイルを転送する際の問題

私は FTP サーバーからファイルを取得するために wget を利用します。次のようにします:

wget ftp://username:[email protected]/public_html/images/audiothumbs/* .

約 1600 個のファイルをダウンロードした後、次のエラーが発生します。

--2010-09-07 01:36:51--  http://./
Resolving .... failed: Name or service not known.
wget: unable to resolve host address `.'
FINISHED --2010-09-07 01:36:52--
Downloaded: 1998 files, 20M in 3m 31s (95.7 KB/s)

他のサーバーから切断されてしまいましたか?

次に、次のように no-clobber オプションを使用します。

wget -r -nc ftp://username:[email protected]/public_html/images/audiothumbs/* .

なぜファイルが上書きされてしまうのでしょうか?

ご協力ありがとうございました

答え1

.コマンドラインの最後に余分な があります。wgetは とは異なりcp、宛先ディレクトリを取得しません。そのため、FTP サーバーからすべてのファイルをダウンロードした後、サーバーから (HTTP を使用して) ファイルをダウンロードしようとします.

また-nc、 については、期待どおりの動作とは異なる動作をすることが文書化されています。

      -N、-nc、-rなしでWgetを実行すると、同じファイルをダウンロードする
      同じディレクトリにコピーすると、ファイルの元のコピーが作成されます
      保存されているコピーはfile.1という名前です。
      ファイルが再度ダウンロードされると、3番目のコピーはfile.2という名前になります。
      など。-ncが指定されると、この動作は抑制され、
      Wgetはファイルの新しいコピーのダウンロードを拒否します。したがって、
      「no-clobber」は実際にはこのモードでは誤った名称です。
      上書きは防止されます(数値接尾辞はすでに
      上書きを防ぐのではなく、複数のバージョンを保存する
      それは阻止されます。

答え2

ダウンロード ディレクトリの最大再帰は 5 であることに注意してください。

wget を使用して FTP からダウンロードする場合は、再帰の深さを設定する必要があります。

-l depth --level=depth

再帰の最大深度レベル depth を指定します。デフォルトの最大深度は 5 です。

関連情報