ユーザーホームディレクトリ外のディレクトリでwgetを使用する

ユーザーホームディレクトリ外のディレクトリでwgetを使用する

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番目のスラッシュは実際にはパスの一部として計算されます。

おすすめ記事