ftp 指令

用途

在本端與遠端主機之間傳送檔案。

語法

ftp [ -d ] [ -D DataConnTimeOut ] [ -g ] [ -i ] [ -n ] [ -v ] [ -f ] [ -K ] [ -k realm ] [ -q ] [ -C ] [-s ] [ -M ] [ HostName [ Port ]] [ -H ]

說明

ftp 指令使用「檔案傳送通訊協定 (FTP)」在本端主機與遠端主機之間或在兩個遠端主機之間傳送檔案。 不建議遠端執行 ftp 指令。

FTP 通訊協定容許在使用不同檔案系統的主機之間進行資料傳送。 雖然通訊協定在傳送資料時提供高度彈性,但它不會嘗試保留特定檔案系統特有的檔案屬性 (例如檔案的保護模式或修改時間)。 此外, FTP 通訊協定很少假設檔案系統的整體結構,且不提供或不容許遞迴複製子目錄之類的功能。

附註: 如果您要在系統之間傳送檔案,且需要保留檔案屬性或遞迴複製子目錄,請使用 rcp 指令。

發出次指令

ftp>提示,您可以輸入次指令來執行作業,例如列出遠端目錄、變更現行本端及遠端目錄、在單一要求中傳送多個檔案、建立及移除目錄,以及跳出至本端 Shell 以執行 Shell 指令。 如需每個次指令的說明,請參閱 次指令 區段。

如果您執行 ftp 指令,但未指定遠端主機的 HostName 參數,則 ftp 指令會立即顯示ftp>提示並等待 ftp 次指令。 若要連接遠端主機,請執行 open 次指令 ftp 指令連接至遠端主機時, ftp 指令會先提示輸入登入名稱及密碼,然後再顯示ftp>提示。 如果遠端主機上未定義登入名稱的密碼,則 ftp 指令不成功。

ftp 指令直譯器,它會處理在ftp>提示,提供大部分檔案傳送程式無法使用的機能,例如:

  • 處理 ftp 次指令的檔名參數
  • 將一組次指令收集到單一次指令巨集中
  • $HOME/.netrc 檔案載入巨集

這些機能有助於簡化重複作業,並可讓您以自動式模式使用 ftp 指令。

指令直譯器會根據下列規則來處理檔名參數:

  • 如果指定參數為 a-(連字號) ,則標準輸入 (stdin) 用於讀取作業,標準輸出 (stdout) 用於寫入作業。
  • 如果先前的檢查不適用,且已啟用檔名擴充 (請參閱 -g 旗標或 glob 次指令) , 直譯器根據 C shell 的規則擴充檔名。 當已啟用全球化,且在次指令中使用預期單一檔名的型樣相符字元時,結果可能不同於預期。

    例如, appendput 次指令會執行檔名擴充,然後只使用第一個產生的檔名。 其他 ftp 次指令,例如 cddeletegetmkdirrename、 及 rmdir,請勿執行檔名擴充,並照字面取得型樣相符字元。

  • 對於 getputmgetmput 次指令, 直譯器可以在不同的本端及遠端檔名語法樣式之間轉換及對映 (請參閱 casentrans, 及 nmap 次指令) ,以及修改本端檔名 (如果不是唯一的) 的能力 (請參閱 runique 次指令)。 此外, ftp 指令可以將指示傳送至遠端 ftpd 伺服器,以修改遠端檔名 (如果它不是唯一的) (請參閱 sunique 次指令)。
  • 使用雙引號 ("") 以指定包含空白字元的參數。
    附註: ftp 指令直譯器不支援管道。 它也不一定支援所有多位元組字元檔名。

若要在以互動方式執行時結束 ftp 階段作業,請執行下列指令: 使用 quitbye 次指令或檔案結尾 (Ctrl-D) 鍵序列ftp>提示。 若要在檔案傳送完成之前結束它,請按「岔斷鍵」順序。 預設岔斷鍵順序是 Ctrl-C。 stty 指令可用來重新定義此按鍵順序。

ftp 指令通常會立即中止傳送 (從本端主機傳送至遠端主機)。 ftp 指令會將 FTP ABOR 指令傳送至遠端 FTP 伺服器,並捨棄所有送入的檔案傳送封包,直到遠端伺服器停止傳送為止,以中止所接收的傳送 (從遠端主機到本端主機)。 如果遠端伺服器不支援 ABOR 指令,則 ftp 指令不會顯示ftp>提示,直到遠端伺服器已傳送所有所要求的檔案為止。 此外,如果遠端伺服器執行非預期的動作,您可能需要結束本端 ftp 處理程序。

安全及自動登入

如果標準是現行鑑別方法:

ftp 指令也會透過將密碼傳送至遠端主機來處理安全,並允許自動登入、檔案傳送及登出。

如果您執行 ftp 指令並指定遠端主機的主機名稱 (HostName) ,則 ftp 指令會嘗試建立與指定主機的連線。 如果 ftp 指令順利連接, ftp 指令會搜尋現行目錄或起始目錄中的本端 $HOME/.netrc 檔案。 如果檔案存在, ftp 指令會在檔案中搜尋一個項目,以起始遠端主機的登入處理程序及指令巨集定義。 如果 $HOME/.netrc 檔案或自動登入項目不存在,或您的系統已使用 securetcpip 指令進行保護,則 ftp 指令會提示使用者輸入使用者名稱及密碼。 不論是否在指令行上指定 HostName 參數,指令都會顯示提示。

附註: 佇列作業系統不支援多位元組主機名稱。

如果 ftp 指令找到指定主機的 $HOME/.netrc 自動登入項目,則 ftp 指令會嘗試使用該項目中的資訊來登入遠端主機。 ftp 指令也會載入項目中定義的任何指令巨集。 在某些情況下 (例如,當自動登入項目中未列出必要的密碼時) , ftp 指令會在顯示ftp>提示。

ftp 指令完成自動登入之後,如果在自動登入項目中定義了 init 巨集,則 ftp 指令會執行該巨集。 如果 init 巨集不存在或不包含 quitbye 次指令, 然後 ftp 指令會顯示ftp>提示並等待次指令。

附註: 在提示或 $HOME/.netrc 檔案中指定的遠端使用者名稱必須存在,且在遠端主機上定義了密碼。 否則, ftp 指令會失敗。

如果 Kerberos 5 是現行鑑別方法

ftp 指令將使用 IETF 草稿文件 "draft-ietf-cat-ftpsec-09.txt" 中定義的 ftp 規格延伸。 FTP 安全延伸將使用「一般安全服務 API (GSSAPI)」安全機制來實作。 GSSAPI 提供與基礎安全和通訊機制無關的服務。 GSSAPI 定義在 rfc 1508 和 1509 中。

ftp 指令將使用 AUTH 及 ADAT 指令向 ftpd 常駐程式進行鑑別。 如果兩者都支援 Kerberos 鑑別,則他們將使用本端使用者 DCE 認證來鑑別遠端系統上的使用者。 如果此失敗,且在兩個系統上都配置了「標準鑑別」,則將使用上述處理程序。

HostName 參數是檔案傳送至其中的主機名稱。 選用 參數指定要透過其進行傳輸的埠 ID。 ( /etc/services 檔案指定預設埠。)

附註: 如果登錄的值正確設定為現行鑑別方法,則 FTP 鑑別會使用 Active Directory 密碼。 如果登錄的值設為空值,則會使用檔案的預設值 (本端使用者鑑別)。

傳輸層安全支援

ftp 指令支援 RFC 4217 中定義的傳輸層安全 (TLS)。 TLS 是一種加密通訊協定,可在用戶端與伺服器之間提供安全通訊。

ftp 指令使用 AUTH TLSPROT P 指令來保護與 ftpd 常駐程式的通訊安全。 如果 AUTH TLSPROT P 指令都支援 TLS 通訊協定,則會建立安全通道。 僅支援「標準鑑別」方法。

如果在執行 ftp 指令時指定 -s 旗標,則 ftp 指令會在您的起始目錄中搜尋本端 $HOME/.ftpcnf 檔案。 如果找到此檔案, ftp 指令會使用下列配置參數來設定與伺服器的 TLS 階段作業。 如果找不到檔案或遺漏配置參數,則 ftp 指令會嘗試連接至伺服器,而不使用配置參數。

CRL_PATH
CRL_PATH 參數提供憑證撤銷清冊檔案的路徑,該檔案必須為保密加強郵件 (PEM) 格式。 如果指定的話,會根據憑證撤銷清冊來驗證伺服器所提供的數位憑證。 如果已撤銷憑證,則 TLS 階段作業會失敗。 如果未指定,則不會根據憑證撤銷清冊來驗證數位憑證。
CA_PATH
CA_PATH 參數提供憑證管理中心檔案的路徑,該檔案必須為 PEM 格式。 如果指定的話,則會根據憑證管理中心來驗證伺服器憑證。 如果安全管理中心未簽署伺服器所提供的數位憑證, TLS 階段作業會失敗。 如果未指定,則不會根據憑證撤銷清冊來驗證伺服器所提供的數位憑證。
CIPHER_LIST
如果指定 CIPHER_LIST 參數,則會在 TLS 階段作業期間使用該清單。 如果沒有,則會使用預設密碼清單。
深度
如果指定 CA_PATH 配置參數,則會使用 DEPTH 值來驗證數位憑證階層中 ftpd 伺服器提供的憑證。 如果未提供,則會使用預設值 9。
CERTIFICATE
CERTIFICATE 參數提供 PEM 格式之有效數位憑證的鏈結檔案路徑。 此檔案用於 TLS 階段作業中。
CERTIFICATE_PRIVATE_KEY
CERTIFICATE_PRIVATE_KEY 參數包含憑證私密金鑰的路徑 (PEM 格式) ,在 TLS 階段作業期間使用。 若要支援 TLS ,您必須從 AIX® Web Download Pack Programs 網站安裝最新版本的 OpenSSL 工具。

旗標

項目 說明
-c 容許使用者指定必須在「網路緩衝區快取 (NBC)」中快取使用 send_file 指令傳送的送出檔案。 除非指定 -q 旗標,否則無法使用此旗標。 只有在以二進位模式送出檔案且沒有保護時,此旗標才適用。
-d ftp 指令作業的除錯資訊傳送至 syslogd 常駐程式。 如果您指定 -d 旗標,則必須編輯 /etc/syslog.conf 檔案,並新增下列其中一個項目:
user.info FileName

user.debug FileName
附註: syslogd 常駐程式除錯層次包括資訊層次訊息。

如果您未編輯 /etc/syslog.conf 檔案,則不會產生任何訊息。 變更 /etc/syslog.conf 檔案之後,請執行 refresh -s syslogdkill -1 SyslogdPID 指令,以將其配置檔的變更通知 syslogd 常駐程式。 如需除錯層次的相關資訊,請參閱 /etc/syslog.conf 檔案。 此外,請參閱 debug 次指令

-D DataConnTimeOut

指定 ftp 指令保留資料連線的秒數上限。 預設值為 300 秒,範圍從 300 秒到 3600 秒。

-f 導致轉遞認證。 如果 Kerberos 5 不是現行鑑別方法,則會忽略此旗標。
-g 停用檔名中 meta 字元的擴充。 解譯 meta 字元可以稱為展開 (有時稱為全球化) 檔名。 請參閱 glob 次指令。
-h 如果針對使用者啟用 FILE_Unlink 事件,則會開啟該事件的審核記載。
-i 在多個檔案傳送期間關閉互動式提示。 請參閱 提示mgetmput。 及 mdelete 次指令,以取得在多個檔案傳送期間提示的說明。
-K 停用控制及資料連線上 sys/socket.h 檔案中定義的 SO_KEEPALIVE 選項。
-k 領域 如果遠端工作站與本端系統網域範圍不同,則容許使用者指定遠端工作站的網域範圍。 基於這些目的,領域與 DCE Cell 同義。 如果 Kerberos 5 不是現行鑑別方法,則會忽略此旗標。
-M 在本端與遠端主機之間傳送檔案之後,防止封鎖 ftp 指令。
-n 防止自動登入起始連線。 否則, ftp 指令會搜尋 $HOME/.netrc 項目,其中會說明遠端主機的登入及起始設定程序。 請參閱 使用者 次指令。
-q 容許使用者指定必須使用 send_file 子常式在網路上傳送檔案。 只有在以二進位模式送出檔案且沒有保護時,此旗標才適用。
-v 顯示來自遠端伺服器的所有回應,並提供資料傳送統計資料。 當 ftp 指令的輸出至終端機 (例如主控台或顯示畫面) 時,此顯示模式是預設值。

如果 stdin 不是終端機,除非使用者以 -v 旗標呼叫 ftp 指令或發出 詳細 次指令,否則 ftp 指令會停用詳細模式。

-s AUTH TLS 指令及 PROT P 指令傳送至 ftpd 常駐程式,以啟動與伺服器的 TLS 階段作業。 如果已建立 TLS 階段作業,且使用「標準鑑別」方法來鑑別您,則會加密資料及指令的傳送。

次指令

可以在下列位置輸入下列 ftp 次指令:ftp>提示。 使用雙引號 ("") 以指定包含空白字元的參數。

項目 說明
![指令 [參數]] 在本端主機上呼叫互動式 Shell。 可以使用 shell 指令提供選用指令 (具有一或多個選用參數)。
$巨集 [參數] 執行先前使用 macdef 次指令定義的指定巨集。 參數未展開。
?[次指令] 顯示說明次指令的說明訊息。 如果您沒有指定 次指令 參數, ftp 指令會顯示已知次指令的清單。
帳戶 [密碼] 在授與對其資源的存取權之前,傳送遠端主機可能需要的補充密碼。 如果指令未提供密碼,則會提示使用者輸入密碼。 密碼不會顯示在畫面上。
append LocalFile [RemoteFile] 將本端檔案附加至遠端主機上的檔案。 如果未指定遠端檔名,則會使用本端檔名,並由使用 ntrans 次指令或 nmap 次指令所做的任何設定變更。 append 次指令使用 formmode、 附加檔案時, structtype 次指令。
ASCII type ascii 次指令的同義字。
鈴聲 每次檔案傳送完成後都會響起一個鈴聲。
binary type binary 次指令的同義字。
區塊 (block) mode block 次指令的同義字。
再見 結束檔案傳送階段作業並結束 ftp 指令。 與 quit 次指令相同。
換行控制碼 form carriage-control 次指令的同義字。
case 設定檔名大小寫的切換參數。 當 case 次指令為「開啟」時,當在本端目錄中寫入遠端檔名時, ftp 指令會將以所有大寫字母顯示的遠端檔名從大寫字母變更為小寫。 預設值為「關閉」(因此 ftp 指令會在本端目錄中以大寫形式寫入大寫遠端檔名)。
cd RemoteDirectory 將遠端主機上的工作目錄變更為指定的目錄。
複製 將遠端主機上的工作目錄變更為現行目錄的上層目錄。
close 結束檔案傳送階段作業,但不結束 ftp 指令。 會消除已定義的巨集。 與 disconnect 次指令相同。
副本本端 切換本端副本。 copylocal 預設為 off。 Ftp 會努力確保您不會透過 ftp'ing 它本身 (例如: 主機名稱相同,路徑名稱相同)。 開啟 copylocal ON 會略過此檢查。
Cr 在 ASCII 類型檔案傳送期間接收記錄時,從回車和換行順序中除去回車字元。 (在檔案傳送期間, ftp 指令會以換行及換行來終止每一個 ASCII 類型記錄。)

遠端主機上的記錄如果作業系統不是您正在執行的作業系統,則可以在記錄中內嵌單行資訊來源。 若要區分這些內嵌行資訊來源與記錄定界字元,請將 cr 次指令設為 Off。 cr 次指令會在「開啟」和「關閉」之間切換。

debug [0 | 1] 切換除錯記錄保持開啟和關閉。 指定 debugdebug 1 ,以列印傳送至遠端主機的每一個指令,並儲存重新啟動控制檔。 再次指定 debugdebug 0,以停止保留除錯記錄。 Ctrl-C 鍵順序也會儲存重新啟動控制檔。

指定 debug 次指令會將 ftp 指令作業的相關除錯資訊傳送至 syslogd 常駐程式。 如果您指定 debug 次指令,則必須編輯 /etc/syslog.conf 檔案,並新增下列其中一個項目:

user.info FileName

user.debug FileName
附註: syslogd 常駐程式除錯層次包括資訊層次訊息。

如果您未編輯 /etc/syslog.conf 檔案,則不會產生任何訊息。 變更 /etc/syslog.conf 檔案之後,請執行 refresh -s syslogdkill -1 SyslogdPID 指令,以將其配置檔的變更通知 syslogd 常駐程式。 如需除錯層次的相關資訊,請參閱 /etc/syslog.conf 檔案。 此外,請參閱 ftp -d 旗標。

刪除 RemoteFile 刪除指定的遠端檔案。
dir [RemoteDirectory] [LocalFile] 將指定遠端目錄 (RemoteDirectory) 的內容清單寫入指定的本端檔案 (LocalFile)。 如果未指定 RemoteDirectory 參數, dir 次指令會列出現行遠端目錄的內容。 如果未指定 LocalFile 參數,或該參數是-(連字號) ,則 dir 次指令會在本端終端機上顯示清單。
中斷連線 結束檔案傳送階段作業,但不結束 ftp 指令。 會消除已定義的巨集。 與 close 次指令相同。
EBCDIC type ebcdic 次指令的同義字。
exp_cmd 在傳統與實驗性通訊協定指令之間切換。 預設值為「關閉」。
檔案 struct file 次指令的同義字。
form [ carriage-control | non-print | telnet ] 指定檔案傳送的形式。 form 次指令會修改 type 次指令,以指定的格式傳送檔案傳送。 有效的引數為 carriage-controlnon-printtelnet
換行控制碼
將檔案傳送的形式設為換行控制碼。
非列印
將檔案傳送的形式設為非列印。
Telnet
將檔案傳送的形式設為 Telnet。 Telnet 是一種傳輸控制通訊協定/Internet Protocol (TCP/IP) 通訊協定,可開啟系統的連線。
get RemoteFile [LocalFile] 將遠端檔案複製到本端主機。 如果未指定 LocalFile 參數,則會在本端使用遠端檔名,並由 casentransnmap 次指令所做的任何設定來變更遠端檔名。 ftp 指令會使用 類型的現行設定, form模式,以及傳送檔案時的 struct 次指令。
glob 切換 mdeletemget、 及 mput 次指令。 如果停用 globbing ,則不會展開這些次指令的檔名參數。 當已啟用全球化,且在次指令中使用預期單一檔名的型樣相符字元時,結果可能不同於預期。

例如, appendput 次指令會執行檔名擴充,然後只使用第一個產生的檔名。 其他 ftp 次指令,例如 cddeletegetmkdirrename、 及 rmdir,請勿執行檔名擴充,並照字面取得型樣相符字元。

在本端執行 mpput 次指令的 globbing ,與在 csh 指令中執行的方式相同。 對於 mdeletemget 次指令,會在遠端機器上個別展開每一個檔名,且不會合併清單。 視遠端主機及 ftp 伺服器而定,目錄名稱的擴充可能不同於檔名的擴充。

若要預覽目錄名稱的展開,請使用 mls 次指令:

mls RemoteFile 

若要傳送檔案的整個目錄子樹狀結構,請以二進位格式傳送子樹狀結構的 tar 保存檔。 而不是使用 mgetmput 次指令。

hash 切換雜湊符號 (#) 列印。 當 hash 次指令開啟時, ftp 指令會針對傳送的每一個資料區塊 (1024 位元組) 顯示一個雜湊符號。
help [次指令] 顯示說明資訊。 請參閱 ? 次指令。
影像 type image 次指令的同義字。
lcd [目錄] 變更本端主機上的工作目錄。 如果您沒有指定目錄, ftp 指令會使用您的起始目錄。
本端 M type local M 次指令的同義字。
ls [RemoteDirectory] [LocalFile] 將遠端目錄的縮寫檔案清單寫入本端檔案。 如果未指定 RemoteDirectory 參數, ftp 指令會列出現行遠端目錄。 如果未指定 LocalFile 參數,或該參數是 a-(連字號) ,則 ftp 指令會顯示本端終端機上的清單。
macdef 巨集 定義次指令巨集。 直到空值行 (兩個連續換行) 的後續行會儲存為巨集的文字。 最多可以定義 16 個巨集 (針對所有巨集最多包含 4096 個字元)。 巨集會保持已定義狀態,直到重新定義或執行 close 次指令為止。

ftp 巨集中, $(錢幣符號) 和 \ (反斜線) 是特殊字元。 呼叫行上的對應巨集參數會取代 $符號,後面接著一或多個數字 (請參閱 $ 次指令)。 後面接著字母 i 的 $符號指出巨集要迴圈,每次傳遞時都會以連續參數取代 $i 字元組合。

第一次執行時使用第一巨集參數,第二次執行時使用第二參數,依此類推。 A\符號可防止特殊處理下一個字元。 請使用 \ 符號來關閉 $和 \ 的特殊意義。 (反斜線句點) 符號。

mdelete RemoteFiles 展開遠端主機上 RemoteFiles 參數指定的檔案,並刪除遠端檔案。
mdir [RemoteDirectories LocalFile] 展開遠端主機上 RemoteDirectories 參數所指定的目錄,並將這些目錄的內容清單寫入 LocalFile 參數中指定的檔案。 如果 RemoteDirectories 參數包含型樣相符字元,則 mdir 次指令會提示輸入本端檔案 (如果未指定任何檔案)。 如果 RemoteDirectories 參數是遠端目錄的清單 (以空白區隔) ,則清單中的最後一個引數必須是本端檔案名稱或-(連字號)。

如果 LocalFile 參數是-(連字號) ,則 mdir 次指令會顯示本端終端機上的清單。 如果互動式提示開啟 (請參閱 prompt 次指令) , ftp 指令會提示使用者驗證最後一個參數是本端檔案,不是遠端目錄。

mget RemoteFiles 展開遠端主機上的 RemoteFiles 參數,並將指出的遠端檔案複製到本端主機上的現行目錄。 如需檔名擴充的相關資訊,請參閱 glob 次指令。 遠端檔名在本端使用,並由 case ntrans所做的任何設定變更。 及 nmap 次指令。 ftp 指令會使用 格式的現行設定, 模式, 傳送檔案時, structtype 次指令。
mkdir [RemoteDirectory] 在遠端主機上建立 RemoteDirectory 參數中指定的目錄。
mls [RemoteDirectories LocalFile] 展開遠端主機上 RemoteDirectories 參數中指定的目錄,並將指出遠端目錄的縮寫檔案清單寫入本端檔案。 如果 RemoteDirectories 參數包含型樣相符字元,則 mls 次指令會提示輸入本端檔案 (如果未指定任何檔案)。 如果 RemoteDirectories 參數是遠端目錄的清單 (以空白區隔) ,則清單中的最後一個引數必須是本端檔案名稱或-(連字號)。

如果 LocalFile 參數是-(連字號) ,則 mls 次指令會在本端終端機上顯示清單。 如果互動式提示開啟 (請參閱 prompt 次指令) , ftp 指令會提示使用者驗證最後一個參數是本端檔案,不是遠端目錄。

mode [ stream | block ] 設定檔案傳送模式。 如果未提供引數,則預設值為 stream
區塊 (block)
將檔案傳送模式設為封鎖。
串流 (stream)
將檔案傳送模式設為串流。
項目 說明
modtime 顯示遠端機器上所指定檔案的前次修改時間。 如果 ftp 指令在執行之前未連接至主機,則 modtime 次指令會終止並顯示錯誤訊息。 ftp 指令會忽略第一個參數以外的參數。 如果未指定 FileName 參數, ftp 指令會提示您輸入檔名。 如果未提供檔名, ftp 指令會將用法訊息傳送至標準輸出,並終止次指令。

如果 FileName 參數指定的名稱存在於遠端主機上,且名稱指定檔案,則 ftp 指令會將包含檔案前次修改時間的訊息傳送至標準輸出,並終止次指令。 如果 FileName 指定目錄,則 ftp 指令會將錯誤訊息傳送至標準輸出,並終止次指令。

附註: modtime 次指令會在容許時解譯 meta 字元。
mpput [LocalFiles] 展開本端主機上 LocalFiles 參數中指定的檔案,並將指出的本端檔案複製到遠端主機。 如需檔名擴充的相關資訊,請參閱 glob 次指令。 本端檔名在遠端主機上使用,並由 ntransnmap 次指令所做的任何設定變更。 ftp 指令會使用 類型的現行設定, form模式,以及傳送檔案時的 struct 次指令。
nlist [RemoteDirectory] [LocalFile] 將指定遠端目錄 (RemoteDirectory) 的內容清單寫入指定的本端檔案 (LocalFile)。 如果未指定 RemoteDirectory 參數, nlist 次指令會列出現行遠端目錄的內容。 如果未指定 LocalFile 參數或該參數是-(連字號) ,則 nlist 次指令會在本端終端機上顯示清單。
nmap [InPattern OutPattern] 開啟或關閉檔名對映機制。 如果未指定任何參數,則會關閉檔名對映。 如果指定參數,則在未指定目的地檔案名稱時,會對映 mget姆 put 次指令以及 取得 次指令的來源檔案名稱。 當本端和遠端主機使用不同的檔案命名慣例或作法時,這個次指令非常有用。 對映遵循 InPatternOutPattern 參數所設定的型樣。

InPattern 參數指定送入檔名的範本,可能已根據 casentrans 設定進行處理。 範本變數$1透過$9可以包含在 InPattern 參數中。 InPattern 參數中除了 $(錢幣符號) 和 \ $(反斜線、錢幣符號) 以外的所有字元都依字面處理,並用作 InPattern 變數之間的定界字元。 例如,如果 InPattern 參數是$1.$2且遠端檔案名稱為mydata.dat,值$1mydata及值$2dat.

OutPattern 參數決定產生的檔名。 變數$1透過$9取代為其衍生自 InPattern 參數的值,以及變數$0取代為原始檔案名稱。 此外,序列 [Sequence1Sequence2] 會取代為 Sequence1的值, 如果 Sequence1 不是空值; 否則會被 Sequence2的值取代。 例如,次指令:

nmap $1.$2.$3 [$1,$2].[$2,file]

將會產生myfile.datamyfile.datamyfile.data.old,myfile.file myfile,及myfile.myfile.myfile. 使用 \ (反斜線) 符號可防止 OutPattern 參數中 $(錢幣符號)、[(左括弧)、] (右括弧) 及、(逗點) 的特殊意義。

非列印 form non-print 次指令的同義字。
ntrans [InCharacters [OutCharacters]] 開啟和關閉檔名字元轉換機制。 如果未指定任何參數,則會關閉字元轉換。 如果指定參數,則當未指定目的地檔案名稱時,會針對 mget姆 put 次指令,以及針對 取得 次指令,轉換來源檔案名稱中的字元。

當本端和遠端主機使用不同的檔案命名慣例或作法時,這個次指令非常有用。 字元轉換遵循 InCharacters OutCharacters 參數所設定的型樣。 來源檔名中與 InCharacters 參數中的字元相符的字元會取代為 OutCharacters 參數中的對應字元。

如果 InCharacters 參數指定的字串長於 OutCharacters 參數指定的字串,則會刪除 InCharacters 參數中的字元 (如果它們在 OutCharacters 參數中沒有對應的字元)。

open HostName [] HostName 參數指定的主機上建立 FTP 伺服器的連線。 如果指定選用埠號, ftp 指令會嘗試連接至該埠的伺服器。 如果設定自動登入特性 (亦即,在指令行上未指定 -n 旗標) ,則 ftp 指令會嘗試讓使用者登入 FTP 伺服器。

您還必須具有 $HOME/.netrc 檔案,其中包含正確的資訊並設定正確的許可權。 .netrc 檔案必須位於起始目錄中。

被動的 切換檔案傳送的被動模式。 在關閉被動模式下呼叫檔案傳送指令 (例如 getmgetputmput) 時, ftp 伺服器會開啟與用戶端的資料連線。 在被動模式中,用戶端會在傳送或接收資料時開啟與伺服器的資料連線。
已授權 只有在設定鑑別方法時,才將保護等級設為專用。 在此層次,資料完整性和機密性受到保護。
提示 (prompt) 切換互動式提示。 如果互動式提示開啟 (預設值) ,則在 mget期間擷取、傳送或刪除多個檔案之前, ftp 指令會提示進行驗證。 mputmdelete 次指令。 否則, ftp 指令會對所有指定的檔案採取相應的動作。
protect 此指令會傳回現行保護層次。
proxy [次指令] 在次要控制連線上執行 ftp 指令。 這個次指令可讓 ftp 指令同步連接至兩部遠端 FTP 伺服器,以便在兩部伺服器之間傳送檔案。 第一個 proxy 次指令應該是 open 次指令,以建立次要控制連線。 輸入 Proxy? 次指令,以查看可在次要連線上執行的其他 ftp 次指令。

proxy 次指令為字首時,下列次指令會有不同的行為:

  • 在自動登入處理程序期間, open 次指令未定義新的巨集。
  • close 次指令不會消除現有的巨集定義。
  • getmget 次指令會將檔案從主要連線上的主機傳送至次要連線上的主機。
  • putmput、 及 append 次指令會將檔案從次要連線上的主機傳送至主要連線上的主機。
  • proxy 指令可以處理 restart 次指令。
  • status 次指令會顯示精確資訊。

檔案傳送需要次要連線上的 FTP 伺服器必須支援 PASV (被動) 指示。

put LocalFile [RemoteFile] 在遠端主機上儲存本端檔案。 如果您未指定 RemoteFile 參數, ftp 指令會使用本端檔案名稱來命名遠端檔案,且 ntransnmap 次指令所做的任何設定都會變更遠端檔案名稱。 ftp 指令會使用 類型的現行設定, form模式,以及傳送檔案時的 struct 次指令。
pwd 顯示遠端主機上現行目錄的名稱。
退出 關閉連線並結束 ftp 指令。 與 bye 次指令相同。
引號 字串 String 參數所指定的字串逐項傳送至遠端主機。 執行 remotehelpquote help 次指令,以顯示 String 參數的有效值清單。
附註: 涉及資料傳送的「引用」指令可能會產生無法預期的結果。
記錄 struct record 次指令的同義字。
recv RemoteFile [LocalFile] 將遠端檔案複製到本端主機。 與 get 次指令相同。
重新起始設定 清除所有 I/O 並容許傳送完成,以重新起始設定 FTP 階段作業。 重設所有預設值,就像使用者剛啟動 FTP 階段作業而未登入遠端主機一樣。
remotehelp [次指令] 從遠端 FTP 伺服器要求說明。
重新命名 FromName ToName 重新命名遠端主機上的檔案。
重設 清除回覆佇列。 這個次指令會重新同步化指令剖析。
restart get | put | append 在建立最後一個檢查點的點重新啟動檔案傳送。 若要順利執行,次指令必須與中斷的次指令相同,包括結構、類型及表單。 有效引數為 getputappend
rmdir RemoteDirectory 移除遠端主機上 RemoteDirectory 參數所指定的遠端目錄。
runique (ReceiveUnique) 在 getmget 次指令期間,切換為本端目的地檔案建立唯一檔名的機能。 如果此機能為「關閉」(預設值) ,則 ftp 指令會改寫本端檔案。 否則,如果本端檔案與指定給本端目的地檔案的名稱相同,則 ftp 指令會使用下列指令來修改本端目的地檔案的指定名稱:.1. 如果本端檔案已使用新名稱,則 ftp 指令會將字尾 .2 附加至指定的名稱。 如果本端檔案已使用這個第二個名稱, ftp 指令會繼續增量字尾,直到找到唯一檔名或達到 .99 而找不到唯一檔名為止。 如果 ftp 指令找不到唯一檔名, ftp 指令會報告錯誤,且不會進行傳送。 請注意, runique 次指令不會影響從 Shell 指令產生的本端檔名。
安全 將保護等級設為「安全」。 在此層次,資料會受到完整性保護。
send LocalFile [RemoteFile] 在遠端主機上儲存本端檔案。 與 put 次指令相同。
傳送埠 切換使用 FTP 埠指令。 依預設,在為每一個資料傳送建立連線時, ftp 指令會使用 PORT 指令。 當停用 PORT 指示時, ftp 指令不會使用 PORT 指示進行資料傳送。 當處理 FTP 伺服器時,若忽略 PORT 指令,但不正確地指出已接受這些指令,則 PORT 指令非常有用。
網站 引數 使用 chmod 指令來顯示或設定閒置逾時期間,顯示或設定檔案建立 umask ,或變更檔案的許可權。 Args 參數可能的值為 umaskchmod
大小 RemoteFile 顯示 RemoteFile 參數指定之遠端檔案的大小 (以位元組為單位)。
狀態 顯示 ftp 指令的現行狀態,以及次指令的狀態。
串流 (stream) 模式串流 次指令的同義字。
struct [ file | record ] 設定資料傳送結構類型。 有效引數為 filerecord
檔案
將資料傳送結構類型設為檔案。
記錄
將資料傳送結構類型設為記錄。
sunique (傳送/儲存唯一) 在 putmput 次指令期間,切換為遠端目的地檔案建立唯一檔名的機能。 如果關閉此機能 (預設值) , ftp 指令會改寫遠端檔案。 否則,如果遠端檔案與指定給遠端目的地檔案的名稱相同,則遠端 FTP 伺服器會修改遠端目的地檔案的名稱。 請注意,遠端伺服器必須支援 STOU 指示。
系統 顯示在遠端機器上執行的作業系統類型。
Telnet form telnet 次指令的同義字。
tenex type tenex 次指令的同義字。
追蹤 切換封包追蹤。
類型 [ 阿西 | 二進位 | 埃布迪奇 | 映像檔 | 本端 M | 泰內克斯 ] 設定檔案傳送類型。 有效引數為 asciibinaryebcdicimagelocal Mtenex。 如果未指定引數,則會列印現行類型。 預設類型為 ascii; 二進位 類型比 ascii更有效率。
ASCII
將檔案傳送類型設為網路 ASCII。 此類型是預設值。 透過二進位映像檔傳送,檔案傳送可能更有效率。 如需進一步資訊,請參閱 binary 引數。
binary
將檔案傳送類型設為二進位影像。 此類型比 ASCII 傳送更有效率。
EBCDIC
將檔案傳送類型設為 EBCDIC。
影像
將檔案傳送類型設為二進位影像。 此類型比 ASCII 傳送更有效率。
本端 M
將檔案傳送類型設為本端。 M 參數定義每個機器字組的小數位數。 此參數沒有預設值。
tenex
將檔案傳送類型設為 TENEX 機器所需的類型。
使用者 使用者 [密碼] [帳戶] 識別遠端 FTP 伺服器的本端使用者 (使用者)。 如果未指定 密碼帳戶 參數,且遠端伺服器需要它,則 ftp 指令會在本端提示輸入密碼或帳戶。 如果需要 Account 參數,則在遠端登入處理程序完成之後, ftp 指令會將它傳送至遠端伺服器。
附註: 除非在指令行上指定 -n 旗標來停用自動登入,否則 ftp 指令會傳送 使用者密碼帳戶 參數會自動用於遠端伺服器的起始連線。 您也需要起始目錄中的 .netrc 檔案,才能發出自動登入。
verbose 切換詳細模式。 當開啟詳細模式 (預設值) 時, ftp 指令會顯示來自遠端 FTP 伺服器的所有回應。 此外,當傳送完成時, ftp 指令會顯示所有檔案傳送的統計資料。

範例

  1. 若要呼叫 ftp 指令,請登入系統canopus, 顯示本端說明資訊,顯示遠端說明資訊,顯示狀態,切換 鈴聲提示runique追蹤, 及 verbose 次指令,然後退出,請輸入:
    $ ftp canopus
    Connected to canopus.austin.century.com.
    220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23 12:52:09 CST 1991) ready.
    Name (canopus:eric): dee
    331 Password required for dee.
    Password:
    230 User dee logged in.
    ftp> help
    Commands may be abbreviated. Commands are:
    !          delete          mdelete          proxy          runique
    $          debug           mdir             sendport       send
    account    dir             mget             put            size
    append     disconnect      mkdir            pwd            status
    ascii      form            mls              quit           struct
    bell       get             mode             quote          sunique
    binary     glob            modtime          recv           system
    bye        hash            mput             remotehelp     tenex
    case       help            nmap             rstatus        trace
    cd         image           nlist            rhelp          type
    cdup       lcd             ntrans           rename         user
    close      ls              open             reset          verbose
    cr         macdef          prompt           rmdir          ?
    clear      private         protect          safe
    ftp> remotehelp
    214-The following commands are recognized(* =>'s unimplemented).
     USER   PORT   RETR   MSND*  ALLO   DELE   SITE*  XMKD   CDUP 
     PASS   PASV   STOR   MSOM*  REST*  CWD    STAT*  RMD    XCUP
     ACCT*  TYPE   APPE   MSAM*  RNFR   XCWD   HELP   XRMD   STOU 
     REIN*  STRU   MLFL*  MRSQ*  RNTO   LIST   NOOP   PWD 
     QUIT   MODE   MAIL*  MRCP*  ABOR   NLST   MKD    XPWD 
     AUTH   ADAT   PROT   PBSZ   MIC    ENC    CCC
    214 Direct comments to ftp-bugs@canopus.austin.century.com.
    ftp> status
    Connected to canopus.austin.century.com.
    No proxy connection.
    Mode: stream; Type: ascii; Form: non-print; Structure: file
    Verbose: on; Bell: off; Prompting: on; Globbing: on
    Store unique: off; Receive unique: off
    Case: off; CR stripping: on
    Ntrans: off
    Nmap: off
    Hash mark printing: off; Use of PORT cmds: on
    ftp> bell
    Bell mode on.
    ftp> prompt
    Interactive mode off.
    ftp> runique
    Receive unique on.
    ftp> trace
    Packet tracing on.
    ftp> verbose
    Verbose mode off.
    ftp> quit
    $ 
  2. 若要呼叫 ftp 指令,請登入系統canopus,列印工作目錄,變更工作目錄,將檔案傳送類型設為 ASCII ,將本端檔案傳送至遠端主機,將工作目錄切換至上層目錄,然後退出,輸入:
    $ ftp canopus
    Connected to canopus.austin.century.com.
    220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23 12:52:09 CST 1991) ready.
    Name (canopus:eric): dee
    331 Password required for dee.
    Password:
    230 User dee logged in.
    ftp> pwd
    257 "/home/dee" is current directory.
    ftp> cd desktop
    250 CWD command successful.
    ftp> type ascii
    200 Type set to A.
    ftp> send typescript
    200 PORT command successful.
    150 Opening data connection for typescript (128.114.4.99,1412).
    226 Transfer complete.
    ftp> cdup
    250 CWD command successful.
    ftp> bye
    221 Goodbye.
    $ 
  3. 若要使用自動登入 (使用 .netrc 檔案) 來呼叫 ftp 指令,請開啟與系統的階段作業canopus,登入,將工作目錄切換至上層目錄,列印工作目錄,列出現行目錄的內容,刪除檔案,將現行目錄的內容清單寫入本端檔案,關閉階段作業,然後退出,輸入:
    $ ftp canopus
    Connected to canopus.austin.century.com.
    220 canopus.austin.century.com FTP server (Version 4.1 Sat Nov 23 12:52:09 CST 1991) ready.
    331 Password required for dee.
    230 User dee logged in.
    ftp> cdup
    250 CWD command successful.
    ftp> pwd
    257 "/home" is current directory.
    ftp> dir
    200 PORT command successful.
    150 Opening data connection for /usr/bin/ls (128.114.4.99,1407) 
    (0 bytes).
    total 104
    drwxr-xr-x   2 system        32 Feb 23 17:55 bin
    Drwxr-xr-x  26 rios        4000 May 30 17:18 bin1
    drwxr-xr-x   2 system        32 Feb 23 17:55 books
    drwxrwxrwx  18 rios        1152 Jun  5 13:41 dee
    -r--r--r--   1 system      9452 May 17 12:21 filesystems
    drwxr-xr-x   2 system        32 Feb 23 17:55 jim
    drwxr-xr-x   5 system        80 Feb 23 17:55 krs
    drwxrwxrwx   2 rios       16432 Feb 23 17:36 lost+found
    -rwxr-xr-x   1 rios        3651 May 24 16:45 oldmail
    drwxr-xr-x   2 system       256 Feb 23 17:55 pubserv
    drwxrwxrwx   2 system       144 Feb 23 17:55 rein989
    drwxr-xr-x   2 system       112 Feb 23 17:55 reinstall
    226 Transfer complete.
    ftp> delete oldmail
    250 DELE command successful.
    ftp> mdir /home/dee/bin binlist
    output to local-file: binlist? y
    200 PORT command successful.
    150 Opening data connection for /usr/bin/ls (128.114.4.99,1408) (0 bytes).
    226 Transfer complete.
    ftp> close
    221 Goodbye.
    ftp> quit
    $  

檔案

項目 說明
/usr/samples/tcpip/netrc 包含範例 .netrc 檔案。
/etc/syslog.conf 包含 syslogd 常駐程式的配置資訊。