NAME
ftp — Internet
文 件 傳 輸 程 序 (file
transfer program) 概 述 (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 命 令 中 , 若 指 定 文 件 名 作 爲 參 數 , 則 此 文 件 名 會 經 過 以 下 幾 步 的 處 理 :
1. 如 果 指 定 的 文 件 名 爲 ’-’, 則 在 輸 出 時 使 用 標 準 輸 出 stdin, 在 輸 入 時 使 用 標 準 輸 入 stdout.
2. 如 果 指 定 的 文 件 名 首 字 母 是 ’|,’ 則 此 參 數 餘 下 的 部 分 被 當 作 是 一 個 shell 命 令 . Ftp 會 使 用 popen(3) 和 所 提 供 的 參 數 創 建 一 個 shell 進 程 , 並 使 用 標 準 輸 入 stdin (標 準 輸 出 stdout) 來 進 行 讀 (寫 ) 操 作 . 如 果 shell 命 令 中 包 含 空 格 , 則 必 須 用 引 號 將 其 引 起 來 ; 例 如 : "ls -lt". 一 個 有 用 的 例 子 是 : "dir | more".
3. 如 果 上 述 兩 步 處 理 失 敗 , 而 globbing 狀 態 爲 on , 本 地 文 件 名 會 進 行 匹 配 , 匹 配 規 則 同 csh(1) (參 閱 glob 命 令 ). 如 果 ftp 命 令 只 需 要 單 個 的 本 地 文 件 作 參 數 (如 put), 則 僅 使 用 匹 配 結 果 裏 的 第 一 個 文 件 名 .
4. 對 mget 和 get 命 令 而 言 , 如 果 不 指 定 本 地 文 件 名 , 則 遠 端 文 件 名 在 經 過 case, ntrans, 或 nmap 轉 換 後 , 作 爲 本 地 文 件 名 使 用 . 如 果 runique 狀 態 爲 on, 本 地 文 件 名 還 可 能 加 上 一 個 後 綴 以 免 覆 蓋 .
5. 對 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 使 用 了 以 下
的 環 境 變 量 :
HOME 本 環 境 變 量 指 明 瞭 文 件 .netrc 的 缺 省 路 徑 , 如 果 其 存 在 的 話 .
SHELL 本 環 境 變 量 指 明 瞭 缺 省 的 shell. 參 閱 (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
Linux NetKit (0.16) August 15, 1999 Linux NetKit (0.16)