Manpages

FTP(1) BSD General Commands Manual FTP(1)

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, 则 本 地 文 件 名 在 经 过 ntransnmap 转 换 后 , 作 为 远 端 文 件 名 使 用 . 在 文 件 传 输 过 程 中 还 会 使 用 type, forma, modestructure 的 当 前 设 置 .

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 指 定 为 -, 则 输 出 结 果 显 示 在 你 的 终 端 上 .

disconnectclose.

form format 将 文 件 传 输 格 式 设 置 为 format. 缺 省 格 式 为 ’’file’’. ??

get remote-file [local-file] 把 远 端 机 器 上 的 文 件 remote-file 取 回 到 本 地 . 如 果 不 指 定 本 地 文 件 名 , 则 远 端 文 件 名 在 经 过 case, ntransnmap 转 换 后 , 作 为 本 地 文 件 名 使 用 . 文 件 传 输 过 程 中 会 用 到 当 前 的 type, form, mode,structure 状 态 .

glob 转 换 glob 状 态 , 即 在 执 行 mdelete, mgetmput 命 令 时 , 是 否 进 行 文 件 名 匹 配 . 如 果 glob 状 态 为 off, 则 不 进 行 文 件 名 匹 配 . 对 mput 而 言 , 文 件 名 匹 配 规 则 和 本 地 的 csh(1) 文 件 名 匹 配 一 样 . 对 mdeletemget 而 言 , 每 个 远 端 机 器 文 件 名 都 分 别 在 远 端 机 器 上 进 行 匹 配 , 匹 配 结 果 中 的 同 名 文 件 不 会 合 并 . 目 录 名 匹 配 规 则 和 文 件 名 匹 配 规 则 不 尽 相 同 , 具 体 结 果 要 取 决 于 远 端 系 统 和 ftp 服 务 程 序 . 你 可 以 使 用 ’mls remote-files -’ 预 先 看 看 匹 配 结 果 是 否 如 你 所 愿 . 注 意 : mgetmput 可 能 不 会 传 送 子 目 录 . 想 连 着 子 目 录 一 起 传 送 , 你 可 以 使 用 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-filedir 命 令 相 似 , 但 是 允 许 你 指 定 多 个 远 端 文 件 . 如 果 prompt 状 态 为 on, ftp 会 提 示 用 户 确 认 最 后 一 个 参 数 是 用 来 存 放 输 出 结 果 的 本 地 文 件 .

mget remote-files 匹 配 参 数 remote-files 中 指 定 的 远 端 文 件 名 , 对 匹 配 结 果 里 的 每 个 文 件 都 执 行 一 个 get 命 令 . 关 于 文 件 名 匹 配 , 请 参 阅 glob 命 令 . 根 据 当 前 的 case, ntrans,nmap 状 态 , 远 端 文 件 名 在 经 过 适 当 的 转 换 后 , 作 为 本 地 文 件 名 使 用 . 文 件 被 传 输 到 本 地 机 器 的 当 前 目 录 . 你 可 以 用 ’lcd directory’ 命 令 改 变 本 地 机 器 的 当 前 目 录 , 也 可 以 用 ’! mkdir directory’ 命 令 新 建 本 地 目 录 .

mkdir directory-name 在 远 端 机 器 上 创 建 目 录 .

mls remote-files local-filenlist 命 令 相 似 , 但 是 允 许 你 指 定 多 个 远 端 文 件 , 而 且 local-file 这 个 参 数 必 须 指 定 . 如 果 prompt 状 态 为 on, ftp 会 提 示 用 户 确 认 最 后 一 个 参 数 是 用 来 存 放 输 出 结 果 的 本 地 文 件 .

mode [mode-name] 将 文 件 传 输 模 式 设 置 为 mode-name 所 指 定 的 模 式 . 缺 省 模 式 为 ’’stream’’ 模 式 . ??

modtime file-name 显 示 远 端 机 器 上 文 件 的 最 后 修 改 时 间 .

mput local-files 匹 配 参 数 中 指 定 的 本 地 文 件 名 , 对 匹 配 结 果 里 的 每 个 文 件 都 执 行 一 个 put 命 令 . 关 于 文 件 名 匹 配 , 请 参 阅 glob 命 令 . 根 据 当 前 的 ntransnmap 状 态 , 本 地 文 件 名 在 经 过 适 当 的 转 换 后 , 作 为 远 端 文 件 名 使 用 .

newer file-name [local-file] 比 较 远 端 文 件 和 本 地 文 件 的 修 改 时 间 , 如 果 远 端 文 件 比 本 地 文 件 新 , 或 本 地 文 件 不 存 在 , 则 从 远 端 机 器 上 取 此 文 件 .

nlist [remote-directory] [local-file] 显 示 远 端 机 器 上 指 定 目 录 下 的 文 件 列 表 . 如 果 不 指 定 参 数 remote-directory, 则 显 示 远 端 机 器 当 前 目 录 的 内 容 . 如 果 prompt 状 态 为 on, ftp 会 提 示 用 户 确 认 最 后 一 个 参 数 是 用 来 存 放 显 示 结 果 的 本 地 文 件 . 如 果 不 指 定 本 地 文 件 local-file, 或 者 本 地 文 件 local-file 指 定 为 ’Fl,’ 显 示 结 果 会 在 用 户 终 端 上 显 示 出 来 .

nmap [inpattern outpattern] 设 置 或 取 消 文 件 名 映 射 机 制 . 如 果 不 指 定 参 数 , 则 本 命 令 取 消 文 件 名 映 射 机 制 . 如 果 指 定 了 参 数 , 则 在 执 行 mputput 命 令 , 且 不 指 定 远 端 文 件 名 时 , 远 端 文 件 名 会 被 映 射 ; 在 执 行 mgetget 命 令 , 且 不 指 定 本 地 文 件 名 时 , 本 地 文 件 名 会 被 映 射 . 非 unix 的 远 端 系 统 常 使 用 不 同 于 unix 的 文 件 命 名 规 则 , 当 用 ftp 连 接 到 这 样 的 远 端 系 统 时 , 本 命 令 会 很 有 用 处 . 转 换 规 则 由 参 数 inpatternoutpattern 决 定 . 一 个 文 件 名 会 先 经 过 ntranscase 的 转 换 , 再 按 照 inpattern 进 行 nmap 映 射 . 参 数 inpattern 指 定 转 换 前 的 文 件 命 名 规 则 . 参 数 outpattern 指 定 转 换 后 的 文 件 命 名 规 则 . 在 inpatternoutpattern 这 两 个 参 数 中 , 用 $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]] 设 置 或 取 消 文 件 名 字 符 转 换 机 制 . 如 果 不 指 定 参 数 , 则 本 命 令 取 消 文 件 名 字 符 转 换 机 制 . 如 果 指 定 了 参 数 , 则 在 执 行 mputput 命 令 , 且 不 指 定 远 端 文 件 名 时 , 远 端 文 件 名 中 的 字 符 会 被 转 换 ; 在 执 行 mgetget 命 令 , 且 不 指 定 本 地 文 件 名 时 , 本 地 文 件 名 中 的 字 符 会 被 转 换 . 非 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), mgetmput 这 两 个 命 令 会 不 加 提 示 地 传 送 所 有 指 定 的 文 件 , 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 不 会 清 除 已 有 的 宏 定 义 ; getmget 将 文 件 从 主 连 接 的 远 端 主 机 传 送 到 副 连 接 的 远 端 主 机 ; put, mput, 和 append 将 文 件 从 副 连 接 的 远 端 主 机 传 至 主 连 接 的 远 端 主 机 . 第 三 方 文 件 传 输 取 决 于 副 连 接 的 远 端 主 机 是 否 支 持 ftp 协 议 中 的 PASV 命 令 .

put local-file [remote-file] 将 本 地 文 件 传 至 远 端 主 机 . 如 果 不 指 定 参 数 remote-file, 则 根 据 当 前 的 ntransnmap 状 态 , 本 地 文 件 名 在 经 过 适 当 的 转 换 后 , 作 为 远 端 文 件 名 使 用 . 在 文 件 传 输 过 程 中 会 用 到 当 前 的 type, format, modestructure 状 态 .

pwd 显 示 远 端 机 器 的 当 前 路 径 .

quitbye 命 令 .

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 使 用 本 命 令 后 , 接 下 来 应 使 用 一 个 getput 命 令 ; 此 时 的 get 或 put 命 令 会 从 参 数 marker 指 定 的 UNIX 系 统 文 件 偏 移 处 (一 般 以 字 节 计 算 ) 重 传 文 件 .

rmdir directory-name 删 除 远 端 机 器 上 的 目 录 .

runique 转 换 runique 状 态 , 即 本 地 同 名 文 件 是 否 自 动 覆 盖 . 如 果 runique 状 态 为 off, 则 在 使 用 getmget 命 令 取 远 端 文 件 到 本 地 时 , 远 端 文 件 会 自 动 覆 盖 本 地 的 同 名 文 件 ; 如 果 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. 对 mgetget 命 令 而 言 , 如 果 不 指 定 本 地 文 件 名 , 则 远 端 文 件 名 在 经 过 case, ntrans,nmap 转 换 后 , 作 为 本 地 文 件 名 使 用 . 如 果 runique 状 态 为 on, 本 地 文 件 名 还 可 能 加 上 一 个 后 缀 以 免 覆 盖 .

5. 对 mputput 命 令 而 言 , 如 果 不 指 定 远 端 文 件 名 , 则 本 地 文 件 名 在 经 过 ntransnmap 转 换 后 , 作 为 远 端 文 件 名 使 用 . 如 果 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)