萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux 命令列 FTP 多檔案下載與目錄遞迴下載完整指令集

前置準備

目標 FTP 伺服器使用非標準端口,需指定 IP 與 Port 連線。

1. 連線登入

# 方式一:進入 ftp 提示符再開啟連線
ftp
ftp> open 192.168.1.100 2121

# 方式二:單行指令直接連線
ftp 192.168.1.100 2121

# 登入提示輸入使用者名稱與密碼

2. 多檔案下載(mget)

注意: mget 僅適用於檔案,不支援目錄遞迴。

ftp> cd /remote/path
ftp> lcd /local/path
ftp> prompt off          # 關閉逐一確認提示(批量下載必開)
ftp> mget *.log
ftp> mget file1.txt file2.txt file3.txt

3. 目錄遞迴下載(三種方案)

方案 A:wget 鏡像下載(推薦、最簡單)

wget -r -nH --cut-dirs=1 -P /local/path \
     --user=username --password='password' \
     ftp://192.168.1.100:2121/remote/path/
# -r 遞迴 -nH 不建立主機名目錄 --cut-dirs=1 跳過第一層遠端目錄 -P 本地儲存路徑

方案 B:lftp 鏡像模組(功能最強、支援平行下載)

# 安裝
yum install lftp  # 或 apt install lftp

# 互動式
lftp -u username,password -p 2121 192.168.1.100
lftp> mirror -c -P 5 /remote/path /local/path
# -c 斷點續傳 -P 5 並行 5 個連線

# 單行指令(適合腳本)
lftp -c "open -u username,password -p 2121 192.168.1.100; mirror -c -P 5 /remote/path /local/path"

方案 C:tar + ssh 管道(若有 SSH 存取權,速度最快)

# 遠端打包並透過 SSH 串流傳輸到本地解包
ssh user@192.168.1.100 "tar -czf - -C /remote/path ." | tar -xzf - -C /local/path

# 或使用 rsync(需 SSH,支援增量、壓縮、權限保留)
rsync -avz -e "ssh -p 22" user@192.168.1.100:/remote/path/ /local/path/

4. FTP 被動/主動模式切換

ftp> passive   # 切換被動模式(預設),適合客戶端防火牆/NAT 環境
ftp> passive off  # 主動模式

5. 常用 FTP 內部指令速查

指令說明
ls / dir列出遠端目錄
cd path切換遠端目錄
lcd path切換本地目錄
binary二進位模式(預設,圖片/壓縮檔必須)
asciiASCII 模式(文字檔跨平台)
get file下載單一檔案
put file上傳單一檔案
mget files下載多檔案(配合 prompt off)
mput files上傳多檔案
delete file刪除遠端檔案
mkdir dir建立遠端目錄
bye / quit離開 FTP

自動化腳本範例(expect 非互動登入)

#!/usr/bin/expect
spawn ftp 192.168.1.100 2121
expect "Name*:"
send "username\r"
expect "Password:"
send "password\r"
expect "ftp>"
send "prompt off\r"
send "cd /remote/path\r"
send "lcd /local/path\r"
send "mget *.csv\r"
expect "ftp>"
send "bye\r"
expect eof

工具選型建議

場景推薦工具理由
簡單多檔下載ftp + mget系統內建、無依賴
目錄遞迴下載wget / lftp mirror支援遞迴、斷點續傳
大量/大檔/生產環境lftp / rsync平行下載、增量同步、頻寬控制
自動化部署腳本lftp -c / rsync非互動、可程式化、錯誤處理完善

根據檔案規模、網路環境與自動化需求選擇適當工具,避免使用傳統 ftp 進行目錄遞迴下載的痛苦體驗。

copyright © 萬盛學電腦網 all rights reserved