Wget
在使用者主目錄之外的目錄上使用 wget
我正在嘗試使用 wget 通過 FTP 鏡像目錄。我正在使用的命令是
wget -m ftp://user:pass@192.168.1.1/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’.
我搜尋了手冊頁,並用Google搜尋,但我無法弄清楚。如何讓 wget 實際下載目錄“/foo/bar/”,而不是“/usr/user/foo/bar/”?
關於 stackoverflow 的一個類似問題(涉及 java 而不是 wget,但真正的根本問題在於 URL 語法,它希望與語言無關)通過添加另一個斜杠和 URL 編碼來解決,如下所示:
wget -m ftp://user:pass@192.168.1.1/%2Ffoo/bar/
即使沒有編碼,它也適用於我,只需一個額外的斜杠:
wget -m ftp://user:pass@192.168.1.1//foo/bar/
第一個斜杠被丟棄(僅用作主機和路徑之間的分隔符),第二個斜杠實際上算作路徑的一部分。