wgetを使用してFTPを介してディレクトリをミラーリングしようとしています。私が使用するコマンドは
wget -m ftp://user:[email protected]/foo/bar/
ただし、実行すると、次のような結果が表示されます。
--2018-10-10 15:01:32-- ftp://user:*password*@192.168.1.1/foo/bar/
=> ‘192.168.3.150/foo/bar/.listing’
Connecting to 192.168.1.1:21... connected.
Logging in as user ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD (1) /usr/user/foo/bar ...
No such directory ‘foo/bar’.
マニュアルページを検索してグーグルしましたが、わかりません。 wgetに "/usr/user/foo/bar/"の代わりに "/foo/bar/"ディレクトリを実際にダウンロードさせるにはどうすればよいですか?
ベストアンサー1
stackoverflowにも同様の質問があります。(これはwgetではなくJavaに関連していますが、実際には基本的な問題は言語に依存しないURL構文にあります。)
wget -m ftp://user:[email protected]/%2Ffoo/bar/
エンコードなしでスラッシュだけを追加すると機能します。
wget -m ftp://user:[email protected]//foo/bar/
最初のスラッシュは削除され(ホストとパス間の区切り文字としてのみ使用されます)、2番目のスラッシュは実際にはパスの一部として計算されます。