FTP 是兩台電腦間傳送檔案的工具, 而 Linux 已經內建了 ftp 指令, 可以用作傳送檔案。但要留意的是, ftp 是沒有經過加密的通訊協定, 如果傳送敏感的資料, 建議使用 SFTP.
在 Linux 要連接到遠端 FTP 伺服器, 只要在 ftp 指令後面加入遠端主名稱或 ip 即可, 例如:
以上指令會嘗試連線到 192.168.1.100, 成功連接後, 會彈出要求輸入 username 及 password。如果是公眾開放的 FTP 伺服器, 可以使用匿名帳號 “anonymous” 作為 username, 密碼空白即可。
當登入成功後, 終端機的提示符會變成這樣:
1 |
ftp> |
現在可以直接輸入 ftp 替令, 輸入 help 可以查看所有可用的 ftp 指令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
ftp> ! debug mdir sendport site $ dir mget put size account disconnect mkdir pwd status append exit mls quit struct ascii form mode quote system bell get modtime recv sunique binary glob mput reget tenex bye hash newer rstatus tick case help nmap rhelp trace cd idle nlist rename type cdup image ntrans reset user chmod lcd open restart umask close ls prompt rmdir verbose cr macdef passive runique ? delete mdelete proxy send |
以下是常用指令用法:
ls: 跟 Linux 的 ls 指令一樣, 列出當前目錄下所有檔案及目錄。
cd: 跟 Linux 的 cd 指令一樣, 切換到其他目錄。
cdup: 切換到上一層目錄。
lcd: 在本機目錄切換目錄, 例如在本機切換到 dir 目錄, 輸入 lcd dir
ascii: 改變成 ASCII 模式傳送, 這也是預設值。
binary: 改變成 binary 模式傳送。
get: 下載檔案, 例如 get filename.txt 會下載 filename.txt, 如果本地端有相同檔案名稱, 原來檔案會被覆蓋。
put: 上載檔案, 例如 put filename.txt 會上載 filename.txt, 如果遠端有相同檔案名稱, 原來檔案會被覆蓋。
!: 在指令前加入 ! 符號, 會在本機執行指令, 例如 !ls
mget: 下載多個檔案, 例如 mget *.jpg 會下載所有檔案名稱是 jpg 結尾的檔案。
rename: 把檔案重新命名, 例如 rename old_name new_name
mput: 上載多個檔案, 例如 mput *.jpg 會上載所有檔案名稱是 jpg 結尾的檔案。
delete: 刪除檔案, 例如 delete remote-file
mdelete: 刪除多個檔案, 例如 mdelete *.jpg 會刪除所有檔案名稱是 jpg 結尾的檔案。
size: 印出檔案大小, 例如 size filename
mkdir: 建立目錄, 例如 mkdir new-dir
prompt: 開啟/關閉互動模式.
quit: 登出 ftp 伺服器.
我用mget *.pdf 時得到”NLST doesn’t support wilecard”的結果。我使用的是Ubuntu 20.04。