- English gftp-text
- English tnftp
- English ftp
- italiano
- 日本語
- polski
- 中文 (zh-CN)
- 繁體中文 (zh-TW)
FTP(1) | General Commands Manual | FTP(1) |
NAME¶
ftp
—
概述 (SYNOPSIS)¶
ftp
[-pinegvd
]
[host] pftp
[-inegvd
] [host]
說明 (DESCRIPTION)¶
用戶通過Ftp
這個程序來使用 Internet
上的標準文件傳輸協議
(File Transfer Protocol).
本程序允許用戶向遠端網站發送文件,
或從遠端網站接收文件.
參數選項可以在命令行啓動ftp時指定, 也可以在ftp命令解釋模式下輸入.
-p
- 使用被動模式進行數據傳輸. 如果你本地網絡有防火牆, 外部主機不能連接到你這個客戶端, 這個選項就派上用場了. 本選項要求 ftp 服務器支持 PASV 命令. 如果使用 pftp 從命令行啓動 ftp, 本選項是默認打開的.
-i
- 進行多個文件傳輸時關掉交互式的確認提示.
-n
- 一般,在啓動 ftp 時, ftp
會試着進行自動登錄.
本選項可以關掉這個功能.
如果 auto-login
功能被啓用的話, ftp
會在用戶 home 目錄下的
.netrc (參閱 netrc(5))
文件中查找遠端主機上的用戶帳號.
如果 .netrc
文件中用戶帳號這一項不存在,
ftp
會提示用戶輸入遠端主機上的登錄名
(缺省爲用戶在本地機器上的帳號),
如果需要,
還會提示你輸入密碼和用來登錄的帳號.
??
(譯者注: 使用本選項, 可以實現所謂的 "非交互式登錄". 你可以試試下面這條命令:
echo open ftp_server "\n" user my_name my_password "\n" dir "\n" bye | ftp -n 不能使用 rcp 的時候, 可以用這條 ftp 命令來代替.)
-e
- 如果被編譯成了 ftp 可執行格式, 本選項會關掉命令編輯和歷史命令功能; 否則什麼也不做. ??
-g
- 關掉文件名匹配功能.
-v
- 顯示詳細信息. 本選項使得 ftp 顯示遠端服務器的所有響應, 並在數據傳輸完成後顯示傳輸數據的統計信息.
-d
- 打開 debug 模式.
從命令行啓動
ftp
時,
可指定欲與之通訊的遠端主機.
如果指定了, ftp
會立即嘗試與遠端 FTP
服務器建立連接; 否則,
ftp
會進入其命令解釋模式,
等待用戶進一步的指令.
ftp
在等待用戶指令時,
會顯示提示符
‘ftp>
’
ftp
能夠識別以下的命令:
!
[command [args]]- 在本地機器上啓動一個交互的shell. 如果本命令帶有參數, 第一個參數作爲 shell 命令直接執行, 其它的參數成爲這個 shell 命令的參數.
$
macro-name [args]- 執行宏 macro-name
所指代的命令. 宏使用
macdef
命令來定義. 本命令中的參數不進行文件名匹配, 直接傳給這個宏. account
[passwd]- 在你成功登錄以後, 本命令可以提供一個附加的密碼, 遠端系統會用這個密碼來訪問某些資源. 如果不指定參數, 則會提示用戶輸入密碼; 輸入密碼時, 回顯會被禁止.
append
local-file [remote-file]- 添加本地文件到遠端機器上.
如果沒有指定
remote-file,
則本地文件名在經過
ntrans
或nmap
轉換後, 作爲遠端文件名使用. 在文件傳輸過程中還會使用type,
forma,
mode
和structure
的當前設置. ascii
- 將當前文件傳輸方式設置爲網絡 ASCII 方式, 即文本模式. 這也是缺省的文件傳送方式.
bell
- 每個文件傳送命令完成後響鈴提示.
binary
- 將當前文件傳輸方式設置爲 binary image, 即二進制模式.
bye
- 終止與當前 FTP
服務器的連接, 退出
ftp.
文件結束符 (譯者注: ctrl-D) 有同樣的功能. case
- 轉換 case 狀態,
即遠端主機文件名大小寫轉換規則.
mget
命令會中用到本狀態.case
狀態若爲 on, 遠端主機文件傳輸到本地時, 文件名中的大寫字母會被轉換爲小寫. 缺省的 case 狀態爲 off. (譯者注: toggle 這個詞我翻譯成轉換. 意思是說, 如果當前 case 狀態爲 on, 你執行 case 這個命令, case 狀態就轉成了 off; 如果當前爲 off, 則會變成 on. 下同.) cd
remote-directory- 改變遠端機器上的當前目錄到 remote-directory.
cdup
- 改變遠端機器上的當前目錄到其父目錄, 即其上級目錄.
chmod
mode file-name- 將遠端系統上文件 file-name 的權限改爲 mode.
close
- 終止與當前遠端服務器的 FTP 連接, 回到命令解釋模式. 所有定義的宏都會被清除.
cr
- 轉換 cr 狀態, 即 ascii
方式下取文件時的回車換行轉換規則.
用 ascii 方式獲取文件時,
文件內容被分割爲一條條紀錄,
以回車換行符爲分隔符;
如果
cr
狀態爲 on, 回車換行符會被轉換爲 UNIX 系統的單個換行符. 非 UNIX 系統的文本文件中可能含有單個換行符; 在進行 ascii 方式的文件傳輸時, 只有將cr
狀態設置爲 off, 這些單個換行符才能與回車換行符區分開來.cr
的缺省狀態爲 on. (譯者注: 回車符的 ASCII 碼爲 0D, 對應的 C 語言轉義字符爲 \r; 換行符的 ASCII 碼爲 0A , 對應的 C 語言轉義字符爲 \n; UNIX 下的文本文件, 換行的時候就一個換行符; DOS 下的文本文件, 換行的時候是兩個字符: 回車 + 換行. 服務器端 ftpd 在用 ascii 方式發送文件時, 會先把單個換行轉換爲回車 + 換行, 再送到網絡上傳輸; 客戶端 ftp 在用 ascii 方式接受文件時, 如果 cr 狀態爲 on, ftp 會把回車 + 換行轉換爲單個換行; 如果爲 off, 則不進行這種轉換. 如果網上傳輸的數據中同時含有單個換行和回車 + 換行, 你就一定要把 cr 狀態設爲 off, 才能把數據原樣取回來; 否則, 取回來的單個換行和回車 + 換行都轉換成了單個換行, 你就分不清這兩種了. 還是使用 binary 最好.) delete
remote-file- 刪除遠端機器上的文件 remote-file.
debug
[debug-value]- 轉換 debugging 狀態,
即是否跟蹤每條指令.
debug-value 是可選的,
其值用來設置跟蹤的級別.
當 debigging 狀態爲 on 時,
ftp
會顯示每條送往遠端機器的指令, 並在顯示的指令前加上 ‘-->
’ dir
[remote-directory] [local-file]- 顯示遠端機器目錄
remote-director
下的文件名. local-file
這個參數是可選的.
如果指定了這個參數,
本命令的顯示結果會保存在
local-file
這個本地文件中. 如果
prompt 狀態爲 on,
ftp
會提示用戶確認最後這個參數是用來存放dir
顯示結果的本地文件. 如果不指定 remote-director, 則本命令顯示遠端機器當前目錄下的文件名. 如果不指定 local-file, 或 local-file 指定爲-
, 則輸出結果顯示在你的終端上. disconnect
- 同 close.
form
format- 將文件傳輸格式設置爲 format. 缺省格式爲 “file”. ??
get
remote-file [local-file]- 把遠端機器上的文件
remote-file
取回到本地.
如果不指定本地文件名,
則遠端文件名在經過
case,
ntrans
和nmap
轉換後, 作爲本地文件名使用. 文件傳輸過程中會用到當前的type,
form,
mode,
和structure
狀態. glob
- 轉換 glob 狀態, 即在執行
mdelete,
mget
和mput
命令時, 是否進行文件名匹配. 如果 glob 狀態爲 off, 則不進行文件名匹配. 對mput
而言, 文件名匹配規則和本地的 csh(1) 文件名匹配一樣. 對mdelete
和mget
而言, 每個遠端機器文件名都分別在遠端機器上進行匹配, 匹配結果中的同名文件不會合並. 目錄名匹配規則和文件名匹配規則不盡相同, 具體結果要取決於遠端系統和 ftp 服務程序. 你可以使用 ‘mls remote-files -
’ 預先看看匹配結果是否如你所願. 注意:mget
和mput
可能不會傳送子目錄. 想連着子目錄一起傳送, 你可以使用 binary 方式傳送這個子目錄的 tar(1) 包. (譯者注: 1、 文件匹配是說, *n 代表所有以 n 結尾的文件. 例如, 在你本地 linux 機器當前目錄下有三個文件 Xie Wen Min , 在 shell 下用 echo *n 這條命令, 結果爲 Wen Min , 可見 *n 被 shell 匹配爲 Wen Min. 在 ftp 中, 如果 glob 爲 on , mput *n 這條指令會被匹配爲 mput Wen Min , 本地的 Wen Min 兩個文件被傳送到遠端. 如果 glob 爲 off , mput *n 這條指令不會被匹配, 於是 mput 會試圖把文件名爲 "*n" 的本地文件傳到遠端, 如果本地沒有這個名爲 "*n" 的文件, ftp 就會報錯. 2、 mput 是把本地文件送到遠端機器, 故其匹配規則與本地 shell的文件名匹配一致. mget, mdelete 則是把遠端機器上的文件送到本地, 故其匹配規則和最終結果要取決於遠端系統. 3、 考慮如下情況: 遠端機器上有三個文件 Xie, Wen, Min 如果執行 mget X* W* *n, 顯然, 匹配結果會是 Xie Wen Min Wen. 雖然 Wen 這個文件出現了兩次, 但 ftp 不會把這兩個文件名合爲一個, 所以 Wen 這個文件會被 mget 兩次, 第二次覆蓋第一次. 如果 mdel X* W* *n, Wen 這個文件會被刪兩次, 第二次報錯.) hash
- 轉換 hash 狀態, 即是否顯示數據傳輸進度. 如果 hash 狀態爲 on, 每傳送完一個 1024 字節的數據塊時顯示一個 # 號.
help
[command]- 顯示指定命令
command 的簡要說明.
如果不指定參數,
本命令列出所有已知的
ftp
命令. idle
[seconds]- 將遠端服務器的最長空閒時間設爲 seconds 秒. 如果不指定參數 seconds, 則本命令顯示當前的最長空閒時間值. (譯者注:如果在最長空閒時間內沒執行任何 ftp 命令, 與遠端機器的連接將自動終止. )
lcd
[directory]- 改變本地的當前工作目錄. 如果不指定參數 directory, 則切換到用戶的 home 目錄.
ls
[remote-directory] [local-file]- 顯示遠端機器目錄下的文件名列表.
具體如何顯示與遠端系統有關;
例如, 大多數 UNIX
系統顯示 shell 命令 ls -l
的輸出 (參閱 nlist ).
如果不指定
remote-directory
則顯示遠端機器當前目錄的內容.
如果 prompt 狀態爲 on ,
ftp
會提示用戶確認最後一個參數是用來存放ls
顯示結果的本地文件. 如果不指定 local-file , 或者 local-file 指定爲 ‘-
’, 則結果顯示到用戶終端上. 可以在本命令中用引號指定附加參數. 例如, 如果遠端系統爲 UNIX, 則 ls "-rt /usr" 這條命令會顯示遠端機器 /usr 這個目錄下的文件, 顯示結果按創建時間由遠到近排序. macdef
macro-name- 定義一個宏.
執行本命令後,
接下來輸入的內容會存放到宏
macro-name 裏. 空行
(文件中的連續換行,
或終端的回車換行)
表示宏定義結束.
最多隻能定義 16 條宏,
而且所有的宏內容加起來不能超過
4096 字節. 執行
close
命令後所有的宏定義會被清除. 在宏中, $ 和 \ 這兩個字符爲特殊字符. $ 字符後跟數字, 將在這個宏在執行時將替換爲命令行中的參數. $ 字符後跟字符 i , 表示循環執行當前宏. 在循環的第一次, $i 被替換爲命令行中的第一個參數; 第二次, 替換爲第二個參數, 以此類推. \ 後面跟一個字符, 表示這個字符本身. 例如, \ 可以去掉 $ 的特殊意義, 表示 $ 這個字符本身. mdelete
[remote-files]- 刪除遠端機器文件 remote-files.
mdir
remote-files local-file- 和
dir
命令相似, 但是允許你指定多個遠端文件. 如果 prompt 狀態爲 on,ftp
會提示用戶確認最後一個參數是用來存放輸出結果的本地文件. mget
remote-files- 匹配參數 remote-files
中指定的遠端文件名,
對匹配結果裏的每個文件都執行一個
get
命令. 關於文件名匹配, 請參閱glob
命令. 根據當前的case,
ntrans,
和nmap
狀態, 遠端文件名在經過適當的轉換後, 作爲本地文件名使用. 文件被傳輸到本地機器的當前目錄. 你可以用 ‘lcd directory
’ 命令改變本地機器的當前目錄, 也可以用 ‘! mkdir directory
’ 命令新建本地目錄. mkdir
directory-name- 在遠端機器上創建目錄.
mls
remote-files local-file- 和
nlist
命令相似, 但是允許你指定多個遠端文件, 而且 local-file 這個參數必須指定. 如果 prompt 狀態爲 on,ftp
會提示用戶確認最後一個參數是用來存放輸出結果的本地文件. mode
[mode-name]- 將文件傳輸模式設置爲 mode-name 所指定的模式. 缺省模式爲 “stream” 模式. ??
modtime
file-name- 顯示遠端機器上文件的最後修改時間.
mput
local-files- 匹配參數中指定的本地文件名,
對匹配結果裏的每個文件都執行一個
put
命令. 關於文件名匹配, 請參閱glob
命令. 根據當前的ntrans
和nmap
狀態, 本地文件名在經過適當的轉換後, 作爲遠端文件名使用. newer
file-name [local-file]- 比較遠端文件和本地文件的修改時間, 如果遠端文件比本地文件新, 或本地文件不存在, 則從遠端機器上取此文件.
nlist
[remote-directory] [local-file]- 顯示遠端機器上指定目錄下的文件列表.
如果不指定參數
remote-directory,
則顯示遠端機器當前目錄的內容.
如果 prompt 狀態爲 on,
ftp
會提示用戶確認最後一個參數是用來存放顯示結果的本地文件. 如果不指定本地文件 local-file, 或者本地文件 local-file 指定爲 ‘Fl,’ 顯示結果會在用戶終端上顯示出來. nmap
[inpattern outpattern]- 設置或取消文件名映射機制.
如果不指定參數,
則本命令取消文件名映射機制.
如果指定了參數,
則在執行
mput
或put
命令, 且不指定遠端文件名時, 遠端文件名會被映射; 在執行mget
或get
命令, 且不指定本地文件名時, 本地文件名會被映射. 非 unix 的遠端系統常使用不同於 unix 的文件命名規則, 當用 ftp 連接到這樣的遠端系統時, 本命令會很有用處. 轉換規則由參數 inpattern 和 outpattern 決定. 一個文件名會先經過ntrans
和case
的轉換, 再按照 inpattern 進行nmap
映射. 參數 inpattern 指定轉換前的文件命名規則. 參數 outpattern 指定轉換後的文件命名規則. 在 inpattern 和 outpattern 這兩個參數中, 用 $1, $2, ..., $9 來替代變量; 用 \$ 替代 $ 字符; 其餘的字符則沒有特殊含義. 例如, 若 inpattern 爲 $1.$2, 則對於文件名 mydata.data, $1 取值 mydata, $2取值 data. 結果文件名由 outpattern 決定. 在 outpattern 中, $1, $2, ..., $9 被相應的取值代替, 作爲最終結果. $0 被替換爲整個原始文件名. 對方括號括起來的兩個變量 [$x,$y] 而言, 若 $x 非空, 則其相當於 $x; 否則相當於 $y (以上 x,y 爲數字). 舉例如下: 輸入命令行 nmap $1.$2.$3 [$1,$2].[$2,file], 則 原始文件名 myfile.data 會被映射爲 myfile.data, 原始文件名 myfile.data.old 會被映射爲 myfile.data, 原始文件名 myfile 會被映射爲 myfile.file, 原始文件名 .myfile 會被映射爲 myfile.myfile, Spaces may be included in outpattern, as in the example: `nmap $1 sed "s/ *$//" > $1' . ?? (譯者注: 這一段我沒看懂, 也沒試出來.) `$', '[', ']', `,' 這四個字符有特殊含義, 所以若要使用這四個字符, 需在前面加上 \ 以去掉其特殊含義. ntrans
[inchars [outchars]]- 設置或取消文件名字符轉換機制.
如果不指定參數,
則本命令取消文件名字符轉換機制.
如果指定了參數,
則在執行
mput
和put
命令, 且不指定遠端文件名時, 遠端文件名中的字符會被轉換; 在執行mget
和get
命令, 且不指定本地文件名時, 本地文件名中的字符會被轉換. 非 unix 的遠端系統常使用不同於 unix 的文件命名規則, 用 ftp 連接到這樣的遠端系統時, 本命令會很有用處. 原始文件名中的 inchars 會被替換爲對應的 outchars. 如果 inchar 字符串比 outchar 長, 則多出的那一部分字符會從原始文件名中刪掉. open
host [port]- 連接到指定的遠端主機
host FTP 服務器.
端口號
ftp
是可選的; 如果指定了端口號,ftp
會嘗試使用這個指定的端口號連接遠端 FTP 主機. 如果自動登陸選項auto-login
是打開的話 (缺省爲打開),ftp
還會嘗試自動登陸. (詳見下述) prompt
- 轉換 prompt 狀態,
即是否進行交互提示.
如果 prompt 狀態爲 on ,
在傳送多個文件時, ftp
會提示用戶選擇要上傳或下載的文件;
如果 prompt 狀態爲 off
(缺省爲 on),
mget
和mput
這兩個命令會不加提示地傳送所有指定的文件,mdelete
會不加提示地刪掉所有指定的文件. proxy
ftp-command- 在副連接上執行 ftp
命令.
本命令允許同時連接到兩個遠端
ftp 服務器,
並在這兩個遠端服務器之間傳送文件.
(譯者注: 原始的 ftp
所建立的連接爲 primary control
connection, 主連接; 使用 proxy open
所建立的連接爲 secondary control
connection, 副連接.
在副連接上運行 ftp
命令, 即在 ftp
命令前加上 proxy 前綴, 如
proxy open, proxy put 等. 以下將這種
``proxy ftp command'' 譯爲
"代理命令".)
第一個執行的代理命令應該是
open
命令, 用來建立副連接. 運行 "proxy ?" 命令, 可以看到所有能在副連接中運行的 ftp 命令. 以下的 ftp 命令在副連接中運行時, 效果與在主連接中不同: 在自動登錄過程中,open
不會定義新的宏;close
不會清除已有的宏定義;get
和mget
將文件從主連接的遠端主機傳送到副連接的遠端主機;put
,mput
, 和append
將文件從副連接的遠端主機傳至主連接的遠端主機. 第三方文件傳輸取決於副連接的遠端主機是否支持 ftp 協議中的PASV
命令. put
local-file [remote-file]- 將本地文件傳至遠端主機.
如果不指定參數
remote-file,
則根據當前的
ntrans
和nmap
狀態, 本地文件名在經過適當的轉換後, 作爲遠端文件名使用. 在文件傳輸過程中會用到當前的type,
format,
mode
和structure
狀態. pwd
- 顯示遠端機器的當前路徑.
quit
- 同
bye
命令. quote
arg1 arg2 ...- 將你指定的參數原樣送到遠端 FTP 服務器. (譯者注: 你輸入的 ftp 命令, 經由本地 ftp 客戶程序解釋, 轉換成 ftp 協議命令, 再發送給遠端 ftp 服務程序. 這些轉換後的 ftp 協議命令, 叫做 raw ftp command, 也就是本命令所能使用的參數. 關於這些參數, 請參閱 remotehelp 命令. 下文中出現的大寫字母的命令都是 raw ftp command.)
recv
remote-file [local-file]- 同 get 命令.
reget
remote-file [local-file]- 和 get 命令相似, 略有差異如下: 如果本地文件 local-file 的長度比遠端文件 remote-file 短, ftp 會認爲這是由於上一次傳送異常中斷, 導致本地文件只是遠端文件的開頭一部分, 故 reget 會從本地文件的最後開始續傳. 在連接不穩、經常異常斷掉的網絡中傳送大文件時, 本命令會很有用.
remotehelp
[command-name]- 顯示遠端 FTP 服務程序的幫助信息. 如果指定了參數 command-name, 則此參數也會一併傳給遠端服務器.
remotestatus
[file-name]- 如果不指定參數, 本命令顯示遠端機器的狀態. 如果指定了參數 file-name, 則顯示遠端文件 file-name 的狀態.
rename
[from] [to]- 將遠端機器上的文件 from 重命名爲 to.
reset
- 清除應答隊列. 本命令使本地 ftp 客戶和遠端 ftp 服務程序 重新同步命令/應答序列. 遠端 ftp 服務程序可能出錯, 並導致 ftp 協議出現錯誤, 此時需要使用本命令.
restart
marker- 使用本命令後,
接下來應使用一個
get
或put
命令; 此時的 get 或 put 命令會從參數 marker 指定的 UNIX 系統文件偏移處 (一般以字節計算) 重傳文件. rmdir
directory-name- 刪除遠端機器上的目錄.
runique
- 轉換 runique 狀態,
即本地同名文件是否自動覆蓋.
如果 runique 狀態爲 off,
則在使用
get
或mget
命令取遠端文件到本地時, 遠端文件會自動覆蓋本地的同名文件; 如果 runique 狀態爲 on, 則在文件同名時, 會在取回的文件名後加一個 .1; 如果加了一個 .1 還是與本地文件重名, 則在遠端文件名後加 .2; 若還是重名, 加 .3; 以此類推, 如果直到 .99 還重名, 則會報錯. 新文件名會顯示給用戶. 注意runique
狀態並不影響本地 shell 命令的文件覆蓋. 缺省的runique
狀態爲 off. send
local-file [remote-file]- 同 put 命令.
sendport
- 轉換 sendport 狀態,
即是否使用
PORT
命令. 缺省狀態下,ftp
每建立一個連接進行數據傳送時, 都會使用一個PORT
命令. 使用PORT
命令可以免掉多文件傳輸時的延遲時間. 如果PORT
命令失敗,ftp
會使用缺省的數據端口. 如果禁止使用PORT
命令, 則在每次進行數據傳送時不會使用PORT
命令. 有些版本的 FTP 在具體實現中忽略了PORT
命令, 但卻錯誤地應答說已經接受了PORT
指令, 此時就需要使用本命令. site
arg1 arg2 ...- 本命令將參數作爲
SITE
命令原樣傳給遠端 FTP 服務器. size
file-name- 顯示遠端機器上文件 file-name 的大小.
status
- 顯示
ftp
當前的各種狀態. struct
[struct-name]- 將文件傳輸結構 structure 設置爲參數 struct-name. 缺省取值爲 stream. ??
sunique
- 轉換 sunique 狀態,
即遠端同名文件是否自動覆蓋.
要使用本命令, 遠端的
ftp 服務程序必須支持 ftp
協議中的
STOU
命令. 新生成的不同的遠端文件名會顯示給用戶. 缺省的 sunique 狀態爲 off, 即自動覆蓋遠端同名文件. system
- 顯示遠端機器的操作系統類型.
tenex
- 設置文件傳輸方式爲與 TENEX 機器通訊所需要的方式. ??
trace
- 轉換 trace 狀態, 即是否跟蹤每個數據包.
type
[type-name]- 將文件傳送類型
type
設置爲 type-name. 如果不指定參數, 則本命令顯示當前文件傳送類型. 缺省的文件傳送類型是網絡 ASCII 類型. umask
[newmask]- 設置遠端機器上的文件掩碼爲 newmask. 如果不指定參數 newmask, 則本命令顯示當前的文件掩碼.
user
user-name [password] [account]- 使用 [user-name]
作爲用戶名登錄遠端
FTP 服務器.
如果不指定參數
password,
而遠端服務器需要提供密碼,
則
ftp
會提示用戶輸入密碼 (無回顯); 如果不指定參數 account, 而遠端 FTP 服務器需要提供賬號,ftp
會提示用戶輸入賬號. 如果指定了參數 account, 而在登錄過程中遠端 FTP 服務程序不需要賬號, 則在登錄完成以後會使用一個 account 命令將賬號發送給服務器. 一般而言,ftp
在啓動時, 會與遠端 FTP 服務器建立連接並自動完成以上的登錄過程. 也可以在啓動ftp
時使用 -n 選項禁止此自動登錄功能. verbose
- 轉換 verbose 狀態, 即是否顯示詳細信息. 如果 verbose 狀態爲 on , 則會顯示遠端 FTP 服務器的每一個響應, 並在文件傳送結束後顯示關於傳輸效率的統計信息. 缺省的 verbose 狀態爲 on .
- ? [command]
- 同 help 命令.
如果參數含有空格, 需用使用一對引號 "" 將其引起來.
放棄當前文件傳送 (ABORTING A FILE TRANSFER)¶
按中斷鍵 (一般爲 Ctrl-C ) 可放棄當前文件傳送. 對發送文件而言, 此時當前發送過程會立刻終止; 對文件接收, 此時會發送一個 ftp 協議中的ABOR
命令到遠端服務器,
而剩下未接受的數據會被丟棄.
這個過程有快有慢,
具體取決於遠端服務器如何實現
ABOR
命令.
如果遠端服務器不支持
ABOR
命令,
則服務器會繼續當前文件傳送,
直到傳送完成,
纔再顯示出提示符
‘ftp>.
’
如果所有的本地操作已經完成,
ftp
在等待遠端服務器應答時,
不會對中斷鍵做出響應.
如果這時候 ftp
協議出了問題,
或如上所述遠端服務器不支持
ABOR
命令而堅持把當前文件發送完,
用戶就會等待很長時間得不到響應.
如果確實是 ftp
協議出了問題,
用戶必需手工殺掉這個
ftp
進程.
文件名轉換 (FILE NAMING CONVENTIONS)¶
ftp
命令中,
若指定文件名作爲參數,
則此文件名會經過以下幾步的處理:
- 如果指定的文件名爲
‘
-
’, 則在輸出時使用標準輸出 stdin, 在輸入時使用標準輸入 stdout. - 如果指定的文件名首字母是
‘|,’
則此參數餘下的部分被當作是一個
shell 命令.
Ftp
會使用 popen(3) 和所提供的參數創建一個 shell 進程, 並使用標準輸入 stdin (標準輸出 stdout) 來進行讀 (寫) 操作. 如果 shell 命令中包含空格, 則必須用引號將其引起來; 例如: "ls -lt". 一個有用的例子是: "dir | more". - 如果上述兩步處理失敗,
而 globbing 狀態爲 on ,
本地文件名會進行匹配,
匹配規則同 csh(1)
(參閱
glob
命令). 如果ftp
命令只需要單個的本地文件作參數 (如put),
則僅使用匹配結果裏的第一個文件名. - 對
mget
和get
命令而言, 如果不指定本地文件名, 則遠端文件名在經過case,
ntrans,
或nmap
轉換後, 作爲本地文件名使用. 如果runique
狀態爲 on, 本地文件名還可能加上一個後綴以免覆蓋. - 對
mput
和put
命令而言, 如果不指定遠端文件名, 則本地文件名在經過ntrans
或nmap
轉換後, 作爲遠端文件名使用. 如果sunique
狀態爲 on, 遠端服務器可能還會給遠端文件名加上一個後綴以免覆蓋.
文件轉換參數 (FILE TRANSFER PARAMETERS)¶
FTP 規格說明書中指定了許多可能影響文件傳送的參數.type
可設置爲 ascii, image
(binary), ebcdic, 或 local byte size (一般用於
PDP-10's 和 PDP-20's 機器). Ftp
支持 ascii 和 image
類型的文件傳輸, 對於
tenex
機器, 還支持 local
byte size 8 方式的文件傳輸.
其它可能影響文件傳輸的參數有
mode,
form,
和
struct.
Ftp
只支持這些參數的缺省值.
環境 (ENVIRONMENT)¶
Ftp
使用了以下的環境變量:
參閱 (SEE ALSO)¶
ftpd(8,) RFC 959歷史 (HISTORY)¶
ftp
命令最初見於
4.2.BSD
錯誤 (BUGS)¶
對許多 ftp 命令而言, 其能否正確執行, 取決於遠端服務器如何響應.使用 4.2BSD 的 ascii 方式傳送文件時, 對回車換行符的處理有錯誤. 本版本中已經修正了此問題, 但同時帶來了另一個問題: 使用 ascii 方式, 與 4.2BSD 服務器互傳二進制文件時可能出錯. 要避免此問題, 請使用 binary image 類型來傳送文件.
跋¶
本頁面中文版由中文 man 手冊頁計劃提供。中文 man 手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
August 15, 1999 | Linux NetKit (0.16) |