[問題] 使用 FTP 下載資料夾?

看板Linux作者 (方正)時間7年前 (2018/06/04 15:52), 7年前編輯推噓3(3022)
留言25則, 4人參與, 7年前最新討論串1/1
由於本機空間不足所以沒辦法下載後再上傳 目前是想直接從主機端使用 FTP 連線然後下載檔案 問題是直接使用 FTP 連線以後不知道為甚麼不能切換 local 端資料夾? 本機端資料夾原本在 /home/test/public_html/test/123 下指令 !cd .. 然後用 !pwd 檢視 資料夾位置沒有改變 在 google 上尋找說可以用 wget 下載整個資料夾 wget -r ftp://"test@test.com":password@1.2.3.4/public_html/download/Driver 但是一直回應 Bad port number. 使用 FTP 連線的時候有回應使用的是 port 21 就算加上使用 port 仍然顯示 Bad Port Number. wget -r ftp://"test@test.com":password@1.2.3.4:21/public_html/download/Driver 希望前輩可以指點一下~m(_ _)m -- _ ◣██◣█◢█◢ ψ sanbis ◢████◣ ◥██◤ ◥██◤ ◢ ◢█◤◥◤ ─ ─ ◥◥◤ ◥ ██ = =ˇ﹀﹀ˇ ◣◥██ ██◤◢ || ◣◆ ┐ ┌ ◥██ ██◤ < 喂!那是我家耶!? \ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.125.62.244 ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1528098768.A.DD6.html

06/04 18:11, 7年前 , 1F
帳號密碼另外用 --ftp-user --ftp-password 帶進去看看?
06/04 18:11, 1F

06/04 23:22, 7年前 , 2F
建議用 lftp 多的 mirror -c 命令
06/04 23:22, 2F

06/05 13:32, 7年前 , 3F
!cd 應該是新開一個 shell 然後 cd ,原本 shell 的
06/05 13:32, 3F

06/05 13:33, 7年前 , 4F
資料夾不變,應該要用 lcd 才對。
06/05 13:33, 4F

06/05 13:34, 7年前 , 5F
然後如果帳號名字含特殊字元,要用 precentage encode
06/05 13:34, 5F

06/05 13:35, 7年前 , 6F
應該是 ftp://test%40test%21:password@1.2.3.4:21/
06/05 13:35, 6F

06/05 13:36, 7年前 , 7F
在 bash 裡這樣的雙引號是沒用的。
06/05 13:36, 7F

06/05 16:47, 7年前 , 8F
問題已經排除~
06/05 16:47, 8F
改用下面方式指定 user 跟 PW 可以直接下載~ wget -r --ftp-user="upload@test.com" --ftp-password=password ftp://1.2.3.4/public_html/ 關於 !cd 這個部份還是有點不懂~Orz 但是使用 lcd 可以修改 local 端目錄位置 這裡額外想請教一點問題~ 用 command line 執行 ftp 1.2.3.4 要怎麼在這個指令裡面直接帶 user 跟 PW ? ※ 編輯: sanbis (59.125.62.244), 06/05/2018 16:56:27

06/05 23:35, 7年前 , 9F
ftp 裡打 help 應該有說明,登入記得是 user USERNAME
06/05 23:35, 9F

06/05 23:36, 7年前 , 10F
! 是開一個新的 shell 執行命令,所以你會有二個shell
06/05 23:36, 10F

06/05 23:37, 7年前 , 11F
二個各在各自的目錄,移動任一個對原本的不影響。
06/05 23:37, 11F

06/05 23:39, 7年前 , 12F
而你要的應該是在原本的 shell 裡執行 cd 改變目錄
06/05 23:39, 12F

06/06 20:09, 7年前 , 13F
ftp 裡面打 htlp 跟 ? 都是跳出一串可用指令
06/06 20:09, 13F

06/06 20:10, 7年前 , 14F
但是沒看到指令的詳細說明
06/06 20:10, 14F

06/07 11:16, 7年前 , 15F
要用 ftp 協定連線到某主機把某個目錄其下都下載
06/07 11:16, 15F

06/07 11:17, 7年前 , 16F
考慮一下傳統 ftp 協定並無下載整個資料夾支援
06/07 11:17, 16F

06/07 11:18, 7年前 , 17F
所以一般實作上是 ftp client 遞迴方式自行處理
06/07 11:18, 17F

06/07 11:22, 7年前 , 18F
一般用 lftp 的 mirror 命令可以同步完整下載甚至上傳
06/07 11:22, 18F

06/07 11:23, 7年前 , 19F
你一開始帳號密碼問題,主要是帳號有 @ 字元
06/07 11:23, 19F

06/07 11:24, 7年前 , 20F
所以 :password 等就被當作 port 導致錯誤
06/07 11:24, 20F

06/07 11:24, 7年前 , 21F
傳統 linux 的 ftp 這個命令沒有參數可以指定帳密
06/07 11:24, 21F

06/07 11:25, 7年前 , 22F
一般要自動化主要是搭配 .netrc 這種檔案來達成需求
06/07 11:25, 22F

06/07 11:41, 7年前 , 23F
至於特殊字元部分,沒記錯應該把 @ 這個 url encode
06/07 11:41, 23F

06/07 11:45, 7年前 , 24F
所以整個改成 test%40test.com:password
06/07 11:45, 24F

06/07 11:56, 7年前 , 25F
url encoding 部分 wget 應該可以識別
06/07 11:56, 25F
文章代碼(AID): #1R5E_GtM (Linux)
文章代碼(AID): #1R5E_GtM (Linux)